Spring Boot中的Mongodb多数据源扩展

栏目: Java · 发布时间: 5年前

内容简介:在日常工作中,我们通过Spring Data Mongodb来操作Mongodb数据库,在Spring Boot中只需要引入spring-boot-starter-data-mongodb即可。然后配置连接信息如下:或者

在日常工作中,我们通过Spring Data Mongodb来操作 Mongodb 数据库,在Spring Boot中只需要引入spring-boot-starter-data-mongodb即可。

然后配置连接信息如下:

spring.data.mongodb.uri=mongodb://localhost:27017/test

或者

pring.data.mongodb.authentication-database= # Authentication database name.
spring.data.mongodb.database=test # Database name.
spring.data.mongodb.host=localhost # Mongo server host.
spring.data.mongodb.password= # Login password of the mongo server.
spring.data.mongodb.port=27017 # Mongo server port.
spring.data.mongodb.username= # Login user of the mongo server.

spring-boot-starter-data-mongodb提供了两种配置方式,分别是uri和host方式。uri可以配置多个地址,也就是集群的配置方式。host只能连接一个节点。

当在一个项目中需要连接多个数据库的时候,spring-boot-starter-data-mongodb的自动配置无法满足需求,所以我这边封装了一个多数据源的Mongodb spring-boot-starter。

之前关于多数据源的使用写了篇文章: spring-boot-starter-mongodb-pool

由于是第一个版本,有些东西没考虑到,最近更新了下,加了一些内容,升级到Spring Boot 2.0版本。

Github: https://github.com/yinjihuan/...

首先还是简单的介绍下如何使用:

配置仓库地址:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://www.jitpack.io</url>
    </repository>
</repositories>

配置最新版本,只支持Spring Boot 2.0

<dependency>
    <groupId>com.github.yinjihuan</groupId>
    <artifactId>spring-boot-starter-mongodb-pool</artifactId>
    <version>2.0.2</version>
</dependency>

我这边配置方式也是uri和host两种,uri的话是只配置mongo节点信息,跟默认的uri格式不一样,不包含用户信息和连接参数。

URI配置集群

spring.data.mongodb.testMongoTemplate.uri=localhost:27017,localhost:27018
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.authenticationDatabase=admin

HOST方式配置

spring.data.mongodb.testMongoTemplate.host=localhost
spring.data.mongodb.testMongoTemplate.port=27017
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456

testMongoTemplate就是我们用来操作test数据库的MongoTemplate对象,框架会自动为你创建好,只需要注入使用就可以了。

@Autowired
@Qualifier("testMongoTemplate")
private MongoTemplate testMongoTemplate;

多数据源就配置多个MongoTemplate就行了,比如:

spring.data.mongodb.testMongoTemplate.host=localhost
spring.data.mongodb.testMongoTemplate.port=27017
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456

spring.data.mongodb.test2MongoTemplate.host=localhost
spring.data.mongodb.test2MongoTemplate.port=27017
spring.data.mongodb.test2MongoTemplate.database=test2
spring.data.mongodb.test2MongoTemplate.username=yinjihuan
spring.data.mongodb.test2MongoTemplate.password=123456

操作哪个数据库就注入哪个对象:

@Autowired
@Qualifier("testMongoTemplate")
private MongoTemplate testMongoTemplate;

@Autowired
@Qualifier("test2MongoTemplate")
private MongoTemplate test2MongoTemplate;

更新说明

  • 支持Spring Boot 2.x版本

第一个版本1.0.0只支持Spring Boot的1.x版本

  • 加上用户认证配置

第一个版本1.0.0中没有加账号密码认证逻辑

  • 支持集群地址配置

通过uri配置集群信息

想了解框架实现细节的请移步: http://cxytiandi.com/course

Spring Boot中的Mongodb多数据源扩展


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

永无止境

永无止境

[美] 道格拉斯•艾德华兹 / 刘纯毅 / 中信出版社 / 2012-12-15 / 59.00元

★ 值得中国初创公司反复思考的企业传记 ★ 互联网行业必读书 ★ Google高管揭开Google的神秘面纱 ★ 探寻“G力量”重塑人类知识景观的心路历程 ★ Google走过的路,Google未来的路 ★ 编辑推荐: 它是目前被公认为全球最大的搜索引擎!它是互联网上五大最受欢迎的网站之一! 它在操作界面中提供多达30余种语言选择,在全球范围内拥有无数用户......一起来看看 《永无止境》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具