我正在努力使用spring boot在转换器类中自动连接依赖项。解决这个问题最优雅的解决方案是什么?
配置
@Component
public class MyConverter implements Converter<Type1, Type2> {
@Autowired
private Dependency dependency; // Null here due to the component not being injected
@Override
public Type2 convert(Type1 type1) {
return dependency.something(type1);
}
}
转换器类
while(sc.hasNextLine()) {
String line = sc.nextLine();
nameList.add(line);
System.out.println("Line: '"+line+"'");
}
答案 0 :(得分:1)
因为你用new创建MyConverter而没有注入依赖,而不是让Spring创建它。
您不需要方法来返回转换器集。 Spring可以为你做,只需自动接线。 Spring足够智能,可以为您提供一个包含所有转换器实现的集合。
你应该使用类似的东西:
@Configuration
public class Config {
@Bean
@Autowired
public ConversionServiceFactoryBean conversionFacilitator(Set<Converter> converters) {
ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean();
factory.setConverters(converters);
return factory;
}
}