mongodb - Springboot忽略MongoDB atlas uri,尝试连接hosts=[127.0.0.1:27017]
问题描述
我一直在使用 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,它忽略了 proeprty spring.data.mongodb.uri并尝试使用默认配置连接本地服务器。
我试过了
@EnableAutoConfiguration(exclude={MongoReactiveAutoConfiguration.class})
但随后它也忽略了上述转换。是否有任何其他配置可以覆盖AbstractReactiveMongoConfiguration
以忽略默认服务器 IP 和端口?
解决方案
我遇到了同样的问题,除了以不同方式配置转换器之外找不到解决方案,而无需扩展 AbstractReactiveMongoConfiguration:
@Configuration
public class MongoAlternativeConfiguration {
@Bean
public MongoCustomConversions mongoCustomConversions() {
return new MongoCustomConversions(
Arrays.asList(
new ZonedDateTimeReadConverter(),
new ZonedDateTimeWriteConverter()));
}
}
推荐阅读
- docker - 在 ac-docker win10 中编译时出现构建错误,要求重建已编译的标头,因为自预编译标头以来文件已被修改
- oracle - 使文本字段仅接受 APEX 中的数值
- reactjs - 如何查看警报框中的输入?
- c++ - 使用emscripten编译时无法导出gl函数
- python - 如何为熊猫数据框中的每个组生成一个 uuid
- laravel - 为什么这种关系是错误的?
- amazon-web-services - 将我的本地环境变量值传递给我的 ec2 用户数据
- python - ValueError:无法将字符串转换为浮点数:'571,2'
- c++ - gem5:在 BaseCPU 中使用 xbar stat
- python - 在 scikit learn/pandas 函数中出现错误提示列不存在