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 ...
 
随机推荐
- dp的一些练习
			
#include<iostream> #include<vector> using namespace std; class Backpack { public: int ma ...
 - HDU1213:How Many Tables(并查集入门)
			
-----------刷点水题练习java------------- 题意:给定N点,M边的无向图,问有多少个连通块. 思路:可以搜索; 可以并查集.这里用并查集练习java的数组使用,ans=N, ...
 - Location配置与ReWrite语法(五)
			
原文链接:https://www.cnblogs.com/crazylqy/p/6892010.html location表示uri方式定位,基础语法有三种: location = pattern { ...
 - InfoQ一波文章:菜鸟核心技术/Intel发布CPU新架构3D堆栈法/BDL/PaddlePaddle/百度第三代Spider/Tera
			
菜鸟智慧新物流核心技术全解析 孟靖 阅读数:63192018 年 12 月 14 日 16:00 2018 年天猫双 11 全球狂欢节已正式落下帷幕,最终成交额定格在 2135 亿元,物流订单 ...
 - JDOJ 1946 求最长不下降子序列个数
			
Description 设有一个整数的序列:b1,b2,…,bn,对于下标i1<i2<…<im,若有bi1≤bi2≤…≤bim 则称存在一个长度为m的不下降序列. 现在有n个数,请你 ...
 - web框架--tornado之cookie与session初识
			
cookie的本质其实就是在浏览器端保存的键值对, 每当浏览器端发送一次请求, 都会将这些键值对附加在请求中并发送给服务器端. 一.目录结构 二.main_pro.py #!/usr/bin/env ...
 - elasticsearch入门及安装
			
参考教程 elasticsearch入门教程:https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html Java JD ...
 - <Trie> 208 211
			
208. Implement Trie (Prefix Tree) class TrieNode{ private char val; public boolean isWord; public Tr ...
 - 11/10 <priorityQueue> 215 347
			
215. Kth Largest Element in an Array 快速排序法,选择一个数,比这个数大的交换到左边,比这个数小的交换到右边. class Solution { public in ...
 - MySQL实战45讲学习笔记:第二十八讲
			
一.读写分离架构 在上一篇文章中,我和你介绍了一主多从的结构以及切换流程.今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题. 我们在上一篇文章中提到的一主多从 ...
 
			
		