[SPRING] 봄 부팅시 사용자 정의 변환기를 등록하는 방법은 무엇입니까?
SPRING봄 부팅시 사용자 정의 변환기를 등록하는 방법은 무엇입니까?
나는 spring-boot-startter-jdbc (v1.3.0)을 사용하여 응용 프로그램을 작성했습니다.
내가 만난 문제 : BeanPropertyRowMapper의 인스턴스가 java.sql.Timestamp에서 java.time.LocalDateTime으로 변환 할 수 없기 때문에 실패합니다.
이 문제를 복사하기 위해 이러한 유형의 org.springframework.core.convert.converter.Converter.
public class TimeStampToLocalDateTimeConverter implements Converter<Timestamp, LocalDateTime> {
@Override
public LocalDateTime convert(Timestamp s) {
return s.toLocalDateTime();
}
}
내 질문은 : 어떻게 BeanPropertyRowMapper에 사용할 수있는 TimeStampToLocalDateTimeConverter를 만들 수 있습니까?
보다 일반적인 질문은 변환기를 시스템 전반에 사용할 수 있도록 등록하는 방법입니다.
다음 코드는 초기화 단계에서 NullPointerException을 발생시킵니다.
private Set<Converter> getConverters() {
Set<Converter> converters = new HashSet<Converter>();
converters.add(new TimeStampToLocalDateTimeConverter());
converters.add(new LocalDateTimeToTimestampConverter());
return converters;
}
@Bean(name="conversionService")
public ConversionService getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
bean.setConverters(getConverters());
bean.afterPropertiesSet();
return bean.getObject();
}
고맙습니다.
해결법
-
==============================
1.@Autowired와 Spring의 관련 의존성 삽입 메커니즘을 사용하여 애플리케이션 전체에 단일 ConversionService 인스턴스를 사용하는 것이 좋습니다. ConversionService는 구성 내에서 인스턴스화됩니다.
@Autowired와 Spring의 관련 의존성 삽입 메커니즘을 사용하여 애플리케이션 전체에 단일 ConversionService 인스턴스를 사용하는 것이 좋습니다. ConversionService는 구성 내에서 인스턴스화됩니다.
사용 가능한 애플리케이션 전체에 대한 모든 전환은 특수 효과를 수신합니다 (예 : @AutoRegistered). 애플리케이션 시작시 @Component FormatterRegistrar를 시작합니다 (유형 이름 자체는 오해의 소지가 있습니다. 예를 들어, 등록자는 "등록자"입니다. @ 봄철에 완전히 관리되고 종속성 주입이 필요한 @Component) @AutoRegistered List 모든 주석이 달린 변환기의
구체적인 구현 세부 사항은이 스레드를 참조하십시오. 우리는이 메커니즘을 프로젝트 내에서 사용하며 매력처럼 작동합니다.
from https://stackoverflow.com/questions/34239585/how-to-register-custom-converters-in-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Controller에서 브라우저의 CSV 데이터를 반환하는 방법 (0) | 2019.02.10 |
---|---|
[SPRING] MongoDB와의 ZonedDateTime (0) | 2019.02.10 |
[SPRING] ScopedProxy는 사용할 세션을 어떻게 결정합니까? (0) | 2019.02.10 |
[SPRING] Spring AOP : 포인트 컷 어노테이션의 매개 변수 얻기 (0) | 2019.02.10 |
[SPRING] 스프링 보안 + MVC : 동일한 @RequestMapping, 다른 @Secured (0) | 2019.02.10 |