我正在使用Java編程配置的Spring Boot。我使用Spring的ConversionService和Spring的Converter界面的幾個自定義實現。我想在配置時使用我的ConversionService bean註冊所有轉換器。值得注意的是,其中一些轉換器具有自己的註釋配置依賴關係,並且這些轉換器沒有連接。例如配置類是類似以下內容:彈簧引導JavaConfig與空的自動裝配依賴關係
@Configuration
public class MyConfig extends WebMvcConfigurerAdapter
{
@Bean
public ConversionService conversionService(List<Converter> converters)
{
DefaultConversionService conversionService = DefaultConversionService();
for (Converter converter: converters)
{
conversionService.addConverter(converter);
}
return conversionService;
}
}
和部分轉換器實現的可能如下:
@Component
public class ConverterImpl implements Converter
{
@Autowired
private DependentClass myDependency;
//The rest of the implementation
}
雖然conversionService是有每一個轉換器實現通過配置加入到它類中,沒有任何轉換器實現中的自動裝配字段正在填充。它們是空的。
我當前的解決方案如下:
@Component
public class ConverterImpl implements Converter
{
@Lazy
@Autowired
private DependentClass myDependency;
//The rest of the implementation
}
總之,在該轉換器的實現的所有自動裝配字段也標註爲「懶惰」。這似乎是在第一次訪問字段時填充的。這感覺像是一個黑客。我的問題是:有沒有更好的方法來實現我想要的?我在Spring文檔中丟失了什麼?總體方法是否有缺陷?