关闭Mongo的自动化配置

因为项目需要配置MongoDB多数据源.

为了避免Spring boot自动化配置带来的影响,因此通过注解屏蔽MongoDB自动化配置.

@SpringBootApplication(exclude =
{MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
public class StatApplication { public static void main(String[] args) { SpringApplication.run(StatApplication.class, args);
}
}

配置文件

个人倾向于使用uri方式初始化MongoClient,配置如下所示:

mongodb:
meta:
uri: mongodb://*:27017/admin?maxPoolSize=64
stat:
uri: mongodb://*:27017/stat?maxPoolSize=64

配置代码

@Data
@Configuration
public class MorphiaConfig { @Value("${mongodb.meta.uri}")
private String metaUri; @Value("${mongodb.stat.uri}")
private String statUri; @Bean("metaMongoClient")
public MongoClient metaMongoClient() {
final MongoClientOptions.Builder builder = MongoClientOptions.builder()
.maxConnectionIdleTime(6000)
.maxConnectionLifeTime(0);
return new MongoClient(new MongoClientURI(metaUri, builder));
} @Bean("statMongoClient")
public MongoClient statMongoClient() {
final MongoClientOptions.Builder builder = MongoClientOptions.builder()
.maxConnectionIdleTime(6000)
.maxConnectionLifeTime(0);
return new MongoClient(new MongoClientURI(statUri, builder));
} @Bean("metaDataStore")
public Datastore metaDataStore(@Autowired @Qualifier("metaMongoClient") MongoClient mongoClient) {
Morphia res = new Morphia();
// 扫描实体类
res.mapPackage("com.*.*.entity.meta");
Datastore datastore = res.createDatastore(mongoClient, "metadata");
// 建立索引
datastore.ensureIndexes();
return datastore;
} @Bean("statDataStore")
public Datastore statDataStore(@Autowired @Qualifier("statMongoClient") MongoClient mongoClient) {
Morphia res = new Morphia();
// 扫描实体类
res.mapPackage("com.*.*.entity.stat");
Datastore datastore = res.createDatastore(mongoClient, "stat");
// 建立索引
datastore.ensureIndexes();
return datastore;
}
}

通过以上代码,就可以建立两个独立的Datastore对象,可以通过对应的Bean name进行引入.

PS:

如果您觉得我的文章对您有帮助,请关注我的微信公众号,谢谢!

最新文章

  1. .NET面试题集锦②(Part 二)
  2. JS—事件对象
  3. The connection to adb is down, and a severe error has occured.(转)
  4. Spirng quartz 整合
  5. ztree check
  6. [转]How to convert IP address to country name
  7. 轻松使用px为单位开发移动端页面
  8. QT5-控件-QComboBox
  9. Reset Password Functionality FAQ
  10. eclipse shortcut binding
  11. .NET DLL 保护措施详解(非混淆加密加壳)核心思路的实现
  12. [转]html转码表
  13. bash中(),{},(()),[],[[]]的区别
  14. 201521123017 《Java程序设计》第5周学习总结
  15. Linux目录结构介绍-http://yangrong.blog.51cto.com/6945369/1288072
  16. JavaScript的DOM编程--08--复习
  17. react 引用 layer (防忘记)
  18. vue(2)—— vue简单语法运用,常用指令集
  19. [转]OmniLayer / omnicore API 中文版
  20. ntldr is missing

热门文章

  1. 查看tensorflow是否为MKL版本命令
  2. CentOS7 部署nfs服务
  3. [RN] React Native 使用 Redux 比较详细和深刻的教程
  4. Centos7将本地源更换为网易源
  5. Gogs配置(本地安装篇-Debian)
  6. convert decimal to binary using inbuilt function
  7. oracle--oracle18C软件安装(一)
  8. 【阿里云IoT+YF3300】2.阿里云IoT云端通信Alink协议介绍
  9. SDK-基于Windows环境搭建
  10. torch_06_卷积神经网络