[SPRING] mongo 사용자 정의 변환기를 사용하지 않는 Spring
SPRINGmongo 사용자 정의 변환기를 사용하지 않는 Spring
기본 ID 값을 변경하기 위해 사용자 지정 변환기를 직접 작성하려고했습니다. 그러나 결코 실제로 부르지 않습니다. 여기 내 사용자 지정 변환기가 있습니다.
public class EventKeyConverter implements Converter<Event,DBObject> {
@Override
public DBObject convert(Event object) {
DBObject dbObject = DBObjectTransformer.toDBObject(object);
dbObject.put("_id", KeyGenerator.getRandomKey());
return dbObject;
}
}
여기에 내가 등록한 고객 변환 담당자가있다.
@Override
@Bean
public CustomConversions customConversions() {
List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
converters.add(new EventKeyConverter());
return new CustomConversions(converters);
}
@Override
@Bean
public MappingMongoConverter mappingMongoConverter() throws Exception {
MappingMongoConverter converter = new MappingMongoConverter(
eventsMongoDbFactory(), mongoMappingContext());
converter.setCustomConversions(customConversions());
return converter;
}
@Bean
public MongoTemplate eventsMongoTemplate() throws Exception {
final MongoTemplate template = new MongoTemplate(
eventsMongoDbFactory(), mappingMongoConverter());
template.setWriteResultChecking(WriteResultChecking.EXCEPTION);
return template;
}
일부 개체를 저장할 때이 변환기는 절대로 호출되지 않습니다.
편집 1 : 모든 저장소에서 기본 개체 ID를 일부 사용자 지정 ID (UUID + 임의 키)로 변경해야합니다. 그래서 몽고 변환기를 사용하려고했습니다.
편집 2 : 방금 문제를 발견했습니다. CustomConversion ()을 포함하는 클래스에서 @Configuration을 @Component로 변경하면 올바르게 작동합니다. 그러나 아직도 여기서 무슨 일이 일어 났는지 궁금합니다.
해결법
-
==============================
1.@Configuration은 @Bean으로 주석을 달았을 때 새로운 빈을 반환하고 그것을 문맥에 넣는 메소드를 포함하고있는 Spring 컨텍스트 조각을 정의한다.
@Configuration은 @Bean으로 주석을 달았을 때 새로운 빈을 반환하고 그것을 문맥에 넣는 메소드를 포함하고있는 Spring 컨텍스트 조각을 정의한다.
@Component는 "이 Pojo는 Spring bean입니다"라고 말하는 방법입니다. 그런 다음 @Component 주석이 달린 빈에 대한 패키지를 스캔하려면 @ComponentScan 주석 또는 XML 해당 제품이 필요합니다.
따라서 귀하의 경우에는 변환기를 잘 만들었지 만, @Component를 추가 할 때까지 Spring 빈으로 등록되지 않았으므로 처음에는 작동하지 않았습니다.
from https://stackoverflow.com/questions/14930933/spring-not-using-mongo-custom-converters by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java Spring Jackson 날짜 직렬화 (0) | 2019.04.21 |
---|---|
[SPRING] JavaConfig에서 http "security = 'none'을 어떻게 정의합니까? (0) | 2019.04.21 |
[SPRING] 스프링 어플리케이션에 각도를 삽입하여 서빙을 실행할 때 스프링 컨트롤러에 액세스 (0) | 2019.04.21 |
[SPRING] 최대 절전 모드 - 1 열에 2 열을 결합하는 방법이 있습니까? (0) | 2019.04.21 |
[SPRING] 스프링 캐쉬 추상화 VS 인터페이스 VS 키 매개 변수 ( "캐시 조작으로 리턴 된 널 (Null) 키"오류) (0) | 2019.04.21 |