[SPRING] 자바 구성으로 Spring ConversionService를 구성하는 방법은 무엇입니까?
SPRING자바 구성으로 Spring ConversionService를 구성하는 방법은 무엇입니까?
나는 그런 xml이있다 :
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="converters.AddressToStringConverter" />
<bean class="converters.StringToAddressConverter" />
</list>
</property>
</bean>
변환기를 문제없이 구성합니다.
그러나이 코드는 동일하지 않습니다.
@Configuration
public class ConversionConfiguration {
@Bean
public ConversionService getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
bean.setConverters(getConverters());
bean.afterPropertiesSet();
ConversionService object = bean.getObject();
return object;
}
private Set<Converter> getConverters() {
Set<Converter> converters = new HashSet<Converter>();
converters.add(new AddressToStringConverter());
converters.add(new StringToAddressConverter());
return converters;
}
}
컨피규레이션의이 부분은 컨텍스트로 스캔됩니다 - 디버거로 검사했습니다. 어디에서 문제가 될 수 있습니까?
해결법
-
==============================
1.내 관점에서 당신의 문제는 콩 이름입니다. @Bean (name = "conversionService")을 사용하여 명시 적으로 이름을 설정하지 않으면 getConversionService가 사용됩니다.
내 관점에서 당신의 문제는 콩 이름입니다. @Bean (name = "conversionService")을 사용하여 명시 적으로 이름을 설정하지 않으면 getConversionService가 사용됩니다.
문서에서 :
-
==============================
2.SpringMVC에서는 WebMvcConfigurerAdapter를 확장하여 Java 기반 구성에 사용할 수 있습니다. 사용자 정의 변환기를 등록하려면 "addFormatters"- 방법을 다음과 같이 수정할 수 있습니다.
SpringMVC에서는 WebMvcConfigurerAdapter를 확장하여 Java 기반 구성에 사용할 수 있습니다. 사용자 정의 변환기를 등록하려면 "addFormatters"- 방법을 다음과 같이 수정할 수 있습니다.
@Configuration @EnableWebMvc @ComponentScan(basePackages = { "..." }) public class ApplicationConfiguration extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Bean public InternalResourceViewResolver getInternalResourceViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } @Override public void addFormatters(FormatterRegistry formatterRegistry) { formatterRegistry.addConverter(getMyConverter()); } @Bean public StringToCounterConverter getMyConverter() { return new StringToCounterConverter(); } }
-
==============================
3.로깅을 활성화하면 여기에 설명 된대로 Spring이 만든 빈을 볼 수 있습니다.
로깅을 활성화하면 여기에 설명 된대로 Spring이 만든 빈을 볼 수 있습니다.
로그 구성
<logger name="org.springframework.beans" level="DEBUG" />
로그 출력
DEBUG (AbstractAutowireCapableBeanFactory.java:458) - Finished creating instance of bean 'getConversionService'
귀하의 코드를 복사 + 붙이면 이름을 변경하지 않고 작동했습니다. 다음과 같이 ConversionService를 삽입했습니다.
@Resource private ConversionService conversionService;
이것은 유형별로 Autowiring 때문에 작동합니다. 아마 두 개의 ConversionService 빈을 가지고있을 것입니다.
from https://stackoverflow.com/questions/11273443/how-to-configure-spring-conversionservice-with-java-config by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 403 대신 Spring Boot 2를 사용하십시오. (0) | 2019.01.05 |
---|---|
[SPRING] MongoDB $ aggregate $ Java Spring 데이터에서 여러 필드 푸시 (0) | 2019.01.05 |
[SPRING] 스프링 부트 응용 프로그램없이 스프링 부트 액츄에이터 사용 (0) | 2019.01.05 |
[SPRING] Spring 프레임 워크 : 로케일 용 코드 아래에 메시지가 없습니다. (0) | 2019.01.05 |
[SPRING] 'sessionFactory'라는 이름으로 빈을 생성하는 중 오류가 발생했습니다 : MalformedParameterizedTypeException (0) | 2019.01.05 |