本文是基于SpringBoot 环境,已引入 mongo-db starter 的前提下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
只需声明一个 MongoClientOptions 类型的 Bean 即可
@Bean
public MongoClientOptions mongoClientOptions(){
return MongoClientOptions.builder().readPreference(ReadPreference.secondary()).build();
}
1. 到这里,已经能使用自定义属性了。以下是源码相关内容,不感兴趣的同学直接略过。
引入上述 starter后,springboot 会自动注入相关类。
2. 这里以 读优先 配置为例
3. 这里重点来了,注入自定义配置信息和将 uri 解析成各个属性
到这里,一直是在为了解析 uri 做铺垫,translateOptions(combinedOptionsMaps); 这个方法就是映射各个 uri 配置的参数
4. 这里定义了自定义属性的优先级
从第三步可以看到已经将属性注入到 builder 对象,以下代码是将 uri 配置的属性覆盖掉 builder 中原有的配置。
到这里Mongo starter 的配置就基本执行完。