在平常工做中,咱們經過Spring Data Mongodb來操做Mongodb數據庫,在Spring Boot中只須要引入spring-boot-starter-data-mongodb便可。git
而後配置鏈接信息以下:github
spring.data.mongodb.uri=mongodb://localhost:27017/test
或者spring
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只能鏈接一個節點。mongodb
當在一個項目中須要鏈接多個數據庫的時候,spring-boot-starter-data-mongodb的自動配置沒法知足需求,因此我這邊封裝了一個多數據源的Mongodb spring-boot-starter。數據庫
以前關於多數據源的使用寫了篇文章:spring-boot-starter-mongodb-pool框架
因爲是第一個版本,有些東西沒考慮到,最近更新了下,加了一些內容,升級到Spring Boot 2.0版本。spring-boot
Github:https://github.com/yinjihuan/...url
首先仍是簡單的介紹下如何使用:spa
配置倉庫地址:code
<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格式不同,不包含用戶信息和鏈接參數。
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
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;
第一個版本1.0.0只支持Spring Boot的1.x版本
第一個版本1.0.0中沒有加帳號密碼認證邏輯
經過uri配置集羣信息
想了解框架實現細節的請移步:http://cxytiandi.com/course