Java 프로그래밍 방식 구성으로 Spring 부트를 사용하고 있습니다. Spring의 ConversionService와 Spring의 Converter 인터페이스에 대한 몇 가지 사용자 정의 구현을 사용하고 있습니다. 구성 시간에 모든 ConversionService Bean에 모든 변환기를 등록하고 싶습니다. 이러한 변환기 중 일부는 자체적 인 주석 구성 종속성을 가지며 이러한 연결은 유선 연결이 아닙니다.자동 부팅 종속성이있는 스프링 부트 JavaConfig null
@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 모든 컨버터 구현이 구성을 통해 추가 데 있지만 예를 들어 구성 클래스는 다음과 같이이다 클래스에서 변환기 구현의 자동 완성 필드 중 어느 것도 채워지지 않습니다. 그들은 null입니다. 요컨대
@Component
public class ConverterImpl implements Converter
{
@Lazy
@Autowired
private DependentClass myDependency;
//The rest of the implementation
}
는 컨버터 구현 autowire가 모든 필드는 '엽기'이라고 주석되어 다음과 같이
나의 현재 솔루션이다. 이 필드는 처음 액세스 할 때 채워지는 필드로 작동합니다. 이것은 해킹처럼 느껴집니다. 내 질문은 : 내가 원하는 것을 성취 할 수있는 더 좋은 방법이 있습니까? 스프링 문서에서 뭔가 빠졌습니까? 전반적인 접근법에 결함이 있습니까?