spring boot MongoDb配置和多数据源
配置文件:
# MongoDB配置项
mongodb.base.host: 192.168.1.204
mongodb.base.port:
mongodb.base.database: xxx
mongodb.base.username: xxxx
mongodb.base.password: 18148E275C234393
java配置:
package com.test.framework.mongodb.base.config; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory; import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress; @Configuration
public class MongodbBaseConfig { public static final String mongoPropertiesBase = "mongoPropertiesBase";
public static final String mongoClientBase = "mongoClientBase";
public static final String mongoDbFactoryBase = "mongoDbFactoryBase";
public static final String mongoTemplateBase = "mongoTemplateBase"; @Bean(name = mongoPropertiesBase)
@ConfigurationProperties(prefix = "mongodb.base")
@Primary
public MongoProperties setMongoProperties() {
return new MongoProperties();
} @Bean(name = mongoClientBase)
@Primary
public MongoClient setMongoClient(@Qualifier(mongoPropertiesBase) MongoProperties mongoProperties) {
// MongoDB地址
ServerAddress serverAddress = new ServerAddress(mongoProperties.getHost(), mongoProperties.getPort()); // 连接认证(用户名,数据库,密码 )
MongoCredential mongoCredential = MongoCredential.createCredential(mongoProperties.getUsername(),
mongoProperties.getDatabase(), mongoProperties.getPassword()); // 连接选项
MongoClientOptions mongoClientOptions = new MongoClientOptions.Builder().build(); // new MongoClientOptions.Builder()
// .connectTimeout(Integer.parseInt(connectTimeout)) // 链接超时时间
// .socketTimeout(Integer.parseInt(socketTimeout)) // read数据超时时间
// .readPreference(ReadPreference.secondary()) // 最近优先策略
// //.autoConnectRetry(false) // 是否重试机制
// .connectionsPerHost(Integer.parseInt(perHost)) // 每个地址最大请求数
// .maxWaitTime(Integer.parseInt(waitTime)) // 长链接的最大等待时间
// .threadsAllowedToBlockForConnectionMultiplier(Integer.parseInt(connectionMultiplier)).build();
// // 一个socket最大的等待请求数
// //.writeConcern(WriteConcern.NORMAL).build(); return new MongoClient(serverAddress, mongoCredential, mongoClientOptions);
} @Bean(name = mongoDbFactoryBase)
@Primary
public MongoDbFactory setMongoDbFactory(@Qualifier(mongoClientBase) MongoClient mongoClient,
@Qualifier(mongoPropertiesBase) MongoProperties mongoProperties) throws Exception { return new SimpleMongoDbFactory(mongoClient, mongoProperties.getDatabase());
} @Primary
@Bean(name = mongoTemplateBase)
public MongoTemplate setMongoTemplate(@Qualifier(mongoDbFactoryBase) MongoDbFactory mongoDbFactory)
throws Exception {
return new MongoTemplate(mongoDbFactory);
} }
spring boot MongoDb配置和多数据源的更多相关文章
- Spring Boot下配置MyBatis多数据源
http://m.blog.csdn.net/article/details?id=51481911
- Spring Boot 2.x Redis多数据源配置(jedis,lettuce)
Spring Boot 2.x Redis多数据源配置(jedis,lettuce) 96 不敢预言的预言家 0.1 2018.11.13 14:22* 字数 65 阅读 727评论 0喜欢 2 多数 ...
- Spring Boot + Mybatis 配置多数据源
Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...
- Spring Boot 自动配置之@Conditional的使用
Spring Boot自动配置的"魔法"是如何实现的? 转自-https://sylvanassun.github.io/2018/01/08/2018-01-08-spring_ ...
- 玩转spring boot——properties配置
前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...
- Spring Boot Mongodb
Spring注解学习,有助于更好的理解下面代码: @ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上 @En ...
- Spring Boot HikariCP 一 ——集成多数据源
其实这里介绍的东西主要是参考的另外一篇文章,数据库读写分离的. 参考文章就把链接贴出来,里面有那位的代码,简单明了https://gitee.com/comven/dynamic-datasource ...
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
- Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置
Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot ...
随机推荐
- @SessionAttributes的覆盖与加入
在我们使用@SessionAttributes 注解向session加入对象时.当我们使用ModelMap的addAttribute()方法是指向session中加入一个新的对象,而使用HttpSes ...
- 关于微软网站维护培训时遇到的issues:What is WEDCS?
WEDCS (pronounced “wed-ex”), the Web Events Data Collection Service, is a system for collecting, com ...
- ubuntu双网卡绑定配置
1,安装bonding需要的软件 sudo apt-get install ifenslave 2,在/etc/modules中加入: bonding mode= miimon= 3,在/etc/ne ...
- socketserver模块三次登陆验证,身份验证
帅爆太阳的男人 1,socketserver是解决TCP服务器和多个客户端进行通信 服务器: import socketserver class MySocket(socketserver,BaseR ...
- UnicodeEncodeError:'latin-1' codec can't encode character
UnicodeEncodeError:'latin-1' codec can't encode character
- Bootstrap tabs 源码分析
前言: 阅读建议:去github下载一个完整dom然后把,本篇代码复制进去然后运行就好了以地址 tab组件是非常简单的一种组件,因为这是一个系列,所以就顺便看了,其实它写的这个还算不错的,很有条例,也 ...
- iOS方法重写
在O-C中子类可以继承父类的方法 ,而不需要从新编写相同的方法,但是有有时候子类并不想原封不动的继承父类的方法,而且是想做一些修改,这就采用啦方法的重写,方法从写有叫做方法覆盖,若子类的中的方法与父类 ...
- 红米note怎么打开USB调试模式
红米note到货后,打开USB调试模式是一些新手很棘手的问题,所以要手机助手成功识别红米note,你必须打开红米note的USB调试模式.在安卓4.2版本中,系统的USB调试模式不是非常简单地被打开的 ...
- luogu 4429 染色
bjoi 2018 染色 推了个错误结论得了60分? 题目大意: 一个无重边和自环的无向图,并且对每个点分别给了一个大小为2的颜色集合,只能从这个集合中选一种颜色给这个点染色 求一个染色方案使得没有两 ...
- RDA 多屏参流程
一.RDA MAKEFILE的本地变量 在介绍多屏参之前,先看一下./code/env.conf的包含过程,通过./code/Makefile.project加载,env.conf中所有的变量,都变为 ...