SpringBoot配置MongoDB多数剧源
关闭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:
如果您觉得我的文章对您有帮助,请关注我的微信公众号,谢谢!
SpringBoot配置MongoDB多数剧源的更多相关文章
- Kali Linux 下安装配置MongoDB数据库    ubuntu  下安装配置MongoDB源码安装数据库
		Kali Linux 下安装配置MongoDB数据库 1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ... 
- java操作mongodb & springboot整合mongodb
		简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ... 
- SpringBoot整合mongoDB
		MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 这一片文章介绍一个springboot整合mongodb,如果你了解整合mysql之类的 ... 
- SpringBoot结合MongoDB入门
		MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ... 
- Springcloud 中 SpringBoot  配置全集 (收藏版)
		Springcloud 中 SpringBoot 配置全集 (收藏版) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群 ... 
- SpringBoot整合MongoDB JPA,测试MongoRepository与MongoTemplate用法,简单增删改查+高级聚合
		源码 地址 -> https://github.com/TaoPanfeng/case/tree/master/04-mongo/springboot-mongo 一 引入依赖 <depe ... 
- springboot配置Druid数据源
		springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ... 
- springboot配置server相关配置&整合模板引擎Freemarker、thymeleaf&thymeleaf基本用法&thymeleaf 获取项目路径 contextPath 与取session中信息
		1.Springboot配置server相关配置(包括默认tomcat的相关配置) 下面的配置也都是模板,需要的时候在application.properties配置即可 ############## ... 
- SpringBoot配置属性之NOSQL
		SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ... 
随机推荐
- 【转载】Innodb中的事务隔离级别和锁的关系
			前言 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力.所 ... 
- 爬虫-js
			js的RSA加密 var encrypt = new JSEncrypt(); encrypt.setPublicKey(publickey); # publickey是已知的 encrypt.en ... 
- 数据结构——顺序队列(sequence queue)
			/* sequenceQueue.c */ /* 顺序队列 */ #include <stdio.h> #include <stdlib.h> #include <std ... 
- [RN] React Native FlatList 选中后 状态没有立即发生改变,而在下一次生效的问题
			React Native FlatList 选中后 状态没有立即发生改变,而在下一次生效的问题 解决关键: 给 FlatList 添加 extraData={this.state} 非常关键,如果不设 ... 
- Python正则表达式学习与运用
			一.什么是正则表达式 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个 ... 
- 带有连接池的Http客户端工具类HttpClientUtil
			一.背景 业务开发中,经常会遇到通过http/https向下游服务发送请求.每次都要重复造轮子写HttpClient的逻辑,而且性能.功能参差不齐.这里分享一个高性能的.带连接池的通用Http客户端工 ... 
- mysql Duplicate entry  '9223372036854775807' for key 'PRIMARY'
			mysql插入数据报错提示: ERROR 1062(23000) Duplicate entry '9223372036854775807' for key 'PRIMARY' 发现问题果断 直接 ... 
- js原型和原型链,以及__proto__、prototype属性
			__proto__和prototype属性: 1.__proto__属性: 在JS里,万物皆对象(函数是对象.原型也是对象...).对象都具有属性__proto__,这个属性会指向该对象的原型. 2. ... 
- Javascript笔记:作用域和执行上下文
			一.作用域 Javascript的作用域规则是在编译阶段确定的,有声明时的位置决定. JS中有全局作用域,函数作用域,块级作用域(ES6引入). 1. 全局作用域 在整个程序生命周期内都是有效的,在任 ... 
- iOS依赖库管理工具之CocoaPods
			CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.利用 CocoaPods,可以定义自己的依赖关系库 (称作 pods),并且随着时间的变化,在整个开发环境中对第 ... 
 
			
		