我在Spring Bott服务中使用了这种依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
我已经创建了一个自定义转换器:
import org.springframework.core.convert.converter.Converter;
@Component
public class ReferenceWriterConverter implements Converter<Reference, DBObject> {
@Override
public DBObject convert(Reference reference) {
DBObject dbObject = new BasicDBObject();
//...
return dbObject;
}
}
我正在尝试找出如何“注册”该转换器。但是,在那儿潜水时,我不太清楚是需要使用CustomConvertions
类还是MappingMongoConverter
。
我需要如何将自定义转换器“注册”到我的spring boot服务中?
有什么想法吗?
答案 0 :(得分:2)
您需要覆盖mongodb的customConversions,如下所示:
@Configuration
public class MongoConfig {
@Bean
public MongoCustomConversions customConversions(){
List<Converter<?,?>> converters = new ArrayList<>();
converters.add(ReferenceWriterConverter.INSTANCE);
return new MongoCustomConversions(converters);
}
@WritingConverter
enum ReferenceWriterConverter implements Converter<Reference, DBObject> {
INSTANCE;
@Override
public String convert(Reference reference) {
//do stuff
}
}
}
当然,您也可以像上面一样在单独的类中声明转换器,并将其自动连接到配置中。