1、代码
1.1、添加配置yml
spring:
mongodb:
primary:
uri: mongodb://admin:123456@192.168.1.77:27017/admin
#集群配置
#uri: mongodb://admin:123456@192.168.1.77:27017,192.168.2.77:27017,192.168.3.77:27017/admin
secondary:
uri: mongodb://admin:123456@192.168.1.77:27017/admin
1.2、配置类
public abstract class AbstractMongoConfig {
//连接MongoDB地址
private String uri;
/**
* 获取mongoDBTtemplate对象
*/
public abstract MongoTemplate getMongoTemplate() throws Exception;
/**
* 创建mongoDb工厂
*/
public MongoDbFactory mongoDbFactory() throws Exception {
MongoClientURI mongoclienturi = new MongoClientURI(uri);
return new SimpleMongoDbFactory(mongoclienturi);
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}
1.3、主库配置-@Primary注解决定主库
@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.primary")
public class IndustryMongoConfig extends AbstractMongoConfig {
@Primary
@Override
@Bean(name = "primaryMongoTemplate")
public MongoTemplate getMongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
}
1.4、第二个库配置
@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.secondary")
//@Deprecated
public class UserBehaviorMongoConfig extends AbstractMongoConfig {
@Override
@Bean(name = "secondaryMongoTemplate")
public MongoTemplate getMongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
}
1.5、排除springboot自动配置mongo内容
@SpringBootApplication(exclude = {
MongoAutoConfiguration.class,
MongoDataAutoConfiguration.class})
如果不配置这个,就会报错,每次启动就会提示找不到默认的那个spring.data.mongodb.uri
的那个数据源