配置文件:

# 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配置和多数据源的更多相关文章

  1. Spring Boot下配置MyBatis多数据源

    http://m.blog.csdn.net/article/details?id=51481911

  2. 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 多数 ...

  3. Spring Boot + Mybatis 配置多数据源

    Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...

  4. Spring Boot 自动配置之@Conditional的使用

    Spring Boot自动配置的"魔法"是如何实现的? 转自-https://sylvanassun.github.io/2018/01/08/2018-01-08-spring_ ...

  5. 玩转spring boot——properties配置

    前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...

  6. Spring Boot Mongodb

    Spring注解学习,有助于更好的理解下面代码: @ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上 @En ...

  7. Spring Boot HikariCP 一 ——集成多数据源

    其实这里介绍的东西主要是参考的另外一篇文章,数据库读写分离的. 参考文章就把链接贴出来,里面有那位的代码,简单明了https://gitee.com/comven/dynamic-datasource ...

  8. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

  9. Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置

    Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot ...

随机推荐

  1. Eclipse + CDT引入OpenCV失败的解决的方法

    Android JNI开发中用到了OpenCV,由于想通过JNI实现,就没有去用Android层的Lib引用. 可是操作中发如今.cpp文件中include的时候发现"#include &l ...

  2. Python常用数据处理函数

    1.基本统计特征函数 方法名 函数功能 所属库 使用格式 sum() 计算数据样本综合(按列计算) Pandas D.sum() mean() 计算数据样本算数平均数 Pandas D.mean() ...

  3. SpringMVC上传文件后返回文件服务器地址路径

    先写一个表单: <%@ page language="java" contentType="text/html; charset=UTF-8" pageE ...

  4. SRM598 Div1

    这次直接进到div1里面搞了,不过div1果然难度要高一些 第一题直接贪心算法了... 先排序,然后判断是否三个小于100,然后2个,最后一个 第二题看错了输入数据,理解错了题意,失误 第三题比较难办 ...

  5. RK3288获取摄像头的Sensor ID【原创】

    平台信息:内核:linux3.0.68 系统:android/android6.0平台:RK3288 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 说明:通过I2C总 ...

  6. [Codeforces 986E] Prince's Problem

    [题目链接] https://codeforces.com/contest/986/problem/E [算法] X到Y的路径积 , 可以转化为X到根的路径积乘Y到根的路径积 , 除以LCA到根的路径 ...

  7. Lexer and parser generators (ocamllex, ocamlyacc)

    Chapter 12 Lexer and parser generators (ocamllex, ocamlyacc) This chapter describes two program gene ...

  8. 前端性能调优Gzip Filter

    转自:https://blog.csdn.net/zxk15982106569/article/details/18922613 客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其 ...

  9. 测试神器Swagger的相关使用

    1.Swagger简介 swagger官网地址: https://swagger.io/ swagger官网文档介绍地址: https://swagger.io/about/ ​ swagge是一个易 ...

  10. mysql5.7 1055

    错误提示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggreg ...