如何在Spring Boot Converter中自动连接依赖?

时间:2017-02-28 21:24:04

标签: spring-boot

我正在努力使用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+"'");
}

1 个答案:

答案 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;
  }
}