关闭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多数剧源的更多相关文章

  1. Kali Linux 下安装配置MongoDB数据库 ubuntu 下安装配置MongoDB源码安装数据库

    Kali Linux 下安装配置MongoDB数据库   1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ...

  2. java操作mongodb & springboot整合mongodb

    简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...

  3. SpringBoot整合mongoDB

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 这一片文章介绍一个springboot整合mongodb,如果你了解整合mysql之类的 ...

  4. SpringBoot结合MongoDB入门

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...

  5. Springcloud 中 SpringBoot 配置全集 (收藏版)

    Springcloud 中 SpringBoot 配置全集 (收藏版) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群 ...

  6. SpringBoot整合MongoDB JPA,测试MongoRepository与MongoTemplate用法,简单增删改查+高级聚合

    源码 地址 -> https://github.com/TaoPanfeng/case/tree/master/04-mongo/springboot-mongo 一 引入依赖 <depe ...

  7. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

  8. springboot配置server相关配置&整合模板引擎Freemarker、thymeleaf&thymeleaf基本用法&thymeleaf 获取项目路径 contextPath 与取session中信息

    1.Springboot配置server相关配置(包括默认tomcat的相关配置) 下面的配置也都是模板,需要的时候在application.properties配置即可 ############## ...

  9. SpringBoot配置属性之NOSQL

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

随机推荐

  1. JavaEE开发环境配置

    JavaEE开发环境配置 Tomcat的下载和安装 1.登录Tomcat 站点,下载Tomcat最新版本http://tomcat.apache.org/Windows平台下载ZIP包,LInux平台 ...

  2. 【使用篇二】SpringBoot整合Filter(2)

    两种方式: 通过注解扫描完成 Filter 组件的注册 通过方法完成 Filter 组件的注册 一.通过注解扫描完成 Filter 组件的注册 1. 编写Filter类 /** * SpringBoo ...

  3. Subversion简介(一)

    Subversion 就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN. Subversion 是 Apache 软件基金会组织下的一个项目. SVN 的工作原理:采取客户端/服务器 ...

  4. zz详解深度学习中的Normalization,BN/LN/WN

    详解深度学习中的Normalization,BN/LN/WN 讲得是相当之透彻清晰了 深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Ba ...

  5. 缓存原理,自己写一个缓存类(c#版)

    .net中的MemoryCache是通过内部封装一个静态Dictionary 自己写一个缓存,来看看内部怎么实现的 public class CustomerCache : ICache { priv ...

  6. Shell编程——位置参数变量

    1. (1)创建Shell脚本: (2)赋予执行权限: (3)执行Shell脚本: (4)对脚本赋值后执行脚本: $n:n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数用大括号包 ...

  7. [LeetCode] 406. Queue Reconstruction by Height 根据高度重建队列

    Suppose you have a random list of people standing in a queue. Each person is described by a pair of ...

  8. 什么是默认登录shell,如何改变指定用户的登录shell?

    在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: #chsh <username> -s & ...

  9. k8s学习路线

    1. 核心概念说明 http://dockone.io/article/932 https://www.centos.bz/2017/08/k8s-kubernetes-architecture-di ...

  10. Ubuntu安装微信、钉钉等各种windows软件

    详见这个博客,用sudo dpkg -i 安装软件时,如果出现错误,是因为缺少安装依赖关系,用下面的命令解决: sudo apt-get install -f