Spring boot mongoclient首选配置

Spring boot mongoclient preferred configuration

我想问一下使用 spring 引导为 MongoClient bean 配置 MongoClientOptions 的最佳方法是什么。例如,我想将 readPreference 设置为 secondary。对于某些 mongodb 连接配置,我可以使用 application.yml 文件和 'spring.data.mongodb' 属性提供设置。有没有办法将它也指定为 属性,或者必须使用 java 配置来完成? 你能给我重定向到一些不错的例子吗?

查看引导存储库中的自动配置 classes 是我通常开始的地方:

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo

如果您查看 MongoAutoConfiguration.java,您会发现它将尝试自动装配 MongoClientOptions 类型的 bean。如果您只是在您的应用程序中创建此 class 的 @Bean,我相信它会使用该配置。据我所知,目前在 application.yml 中只有少数配置属性是可配置的(请参阅 MongoProperties.java class 以获得完整的设置)。

我不能说这是 "best" 方式,但我怀疑这是作者到目前为止的意图。我绝对可以看到对配置属性进行了改进,允许通过属性设置更多的客户端选项(并且感觉更多 "booty" IMO)。