【发布时间】:2026-02-01 14:00:01
【问题描述】:
我一直在使用 Spring webflux 和响应式 mongo DB 开发应用程序。在那里我使用了 mongo DB atlas 作为数据库,它运行良好。
最近我不得不引入 mongo 自定义转换来处理 Zoned Date Time 对象。
@Configuration
public class MongoReactiveConfiguration extends AbstractReactiveMongoConfiguration{
@Override
public MongoCustomConversions customConversions() {
ZonedDateTimeReadConverter zonedDateTimeReadConverter = new ZonedDateTimeReadConverter();
ZonedDateTimeWriteConverter zonedDateTimeWriteConverter = new ZonedDateTimeWriteConverter();
List<Converter<?, ?>> converterList = new ArrayList<>();
converterList.add(zonedDateTimeReadConverter);
converterList.add(zonedDateTimeWriteConverter);
return new MongoCustomConversions(converterList);
}
@Override
protected String getDatabaseName() {
// TODO Auto-generated method stub
return "stlDB";
}
}
但是现在我无法再连接到 mongo db atlas,它会忽略属性 spring.data.mongodb.uri 并尝试使用默认配置连接本地服务器。
我试过了
@EnableAutoConfiguration(exclude={MongoReactiveAutoConfiguration.class})
但随后它也忽略了上述转换。 AbstractReactiveMongoConfiguration 中是否有任何其他配置可以覆盖以忽略默认服务器 IP 和端口?
【问题讨论】:
-
如果您提供自己的 mongo 配置(就像您所做的那样),Spring Boot 将退出配置它。所以是的,添加这个会让 Spring Boot 忽略配置。相反,为
MongoCustomConversion添加一个包含@Bean的@Configuration可能会奏效。
标签: mongodb spring-boot spring-webflux mongodb-atlas reactive-mongo-java