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 ...
随机推荐
- CSRF/XSRF 跨站请求伪造
CSRF/XSRF 跨站请求伪造 CSRF(Cross Site Request Forgery, 跨站域请求伪造)也称 XSRF, 是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安 ...
- MySQL数据库 介绍,安装,基本操作
- 数据库介绍: 1.随意存放在一个文件中的数据,数据的格式千差万别 tank|123 jason:123 sean~123 2.软件开发目录规范 - Project: - conf - bin - ...
- 第一章 了解Web及网络基础
第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...
- [LeetCode] 344. Reverse String 翻转字符串
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- [LeetCode] 223. Rectangle Area 矩形面积
Find the total area covered by two rectilinearrectangles in a 2D plane. Each rectangle is defined by ...
- it's over | 2019 CSP-S 第一轮认证
不知道自己有没有凉,毕竟我们省这么弱(据说有的省80都悬... 其实这几天对初赛基本没什么感觉,可能是没给自己多大压力吧,倒是班上的一群同学似乎比我们还着急,我们的数学课代表兼数竞大佬特意给我画了吉祥 ...
- 微信企业号获取OpenID过程
define('CorpID', "wx82e2c31215d9a5a7"); define('CorpSecret', ""); //当前管理组 设置-> ...
- C# 使用ConcurrentBag类处理集合线程安全问题
在日常的开发中,经常会遇到多个线程对同一个集合进行读写操作,就难免会出现线程安全问题. 以下代码,如果使用List<T>就会遇到问题:System.InvalidOperationExce ...
- 【Oracle】重做undo表空间
重做undo表空间 场景: alert日志,报了如下错误: [oraprod@arpinfo bdump]$ tail -f alert_PROD.log Errors in file /ora115 ...
- Vue.js 源码分析(五) 基础篇 方法 methods属性详解
methods中定义了Vue实例的方法,官网是这样介绍的: 例如:: <!DOCTYPE html> <html lang="en"> <head&g ...
