简介
本文主要讲在 mongodb 在分片集群的情况下,springboot如何进行集成。
默认读者熟悉 maven、springboot、mongodb
Springboot+Mongodb集成
引入依赖
<!-- mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
定义配置文件
自定义配置文件,多数据源的
topinfo: mongodb: base: # mongos的地址和端口 uri: mongodb://192.168.90.225:20000,192.168.90.226:20000,192.168.90.227:20000 database: topinfo_base warn: # mongos的地址和端口 uri: mongodb://192.168.90.225:20000,192.168.90.226:20000,192.168.90.227:20000 database: topinfo_warn
配置父类
package com.topinfo.ci.dataex.config;import java.util.List;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * @Description: mongo配置类 - 父类 * @Author:杨攀 * @Since:2019年7月8日上午11:19:39 */public class MongoConfiguration { private String uri; private String database; public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public String getDatabase() { return database; } public void setDatabase(String database) { this.database = database; }}
基础配置类
package com.topinfo.ci.dataex.config;import java.util.List;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * @Description: mongo配置类 * @Author:杨攀 * @Since:2019年7月8日上午11:19:39 */@ConfigurationProperties(prefix = "topinfo.mongodb.base")@Componentpublic class MongoBaseConfiguration extends MongoConfiguration { }
预警配置类
package com.topinfo.ci.dataex.config;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * @Description: mongo配置类 * @Author:杨攀 * @Since:2019年7月8日上午11:19:39 */@ConfigurationProperties(prefix = "topinfo.mongodb.warn")@Componentpublic class MongoWarnConfiguration extends MongoConfiguration { }
mongo配置类
package com.topinfo.ci.dataex.config;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;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.MongoClientURI;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;/** * @Description: mongoConfig * @Author:杨攀 * @Since:2019年7月8日上午11:22:57 */@Configurationpublic class MongoConfig { @Autowired private MongoBaseConfiguration baseConfiguration; @Autowired private MongoWarnConfiguration warnConfiguration; /** *@Description: MongoDbFactory *@Author:杨攀 *@Since: 2019年7月8日下午4:02:33 *@param config *@return *@throws Exception */ @Bean public MongoDbFactory mongoDbFactory(MongoConfiguration config) throws Exception { MongoClientURI uri = new MongoClientURI(config.getUri()); MongoClient mongoClient = new MongoClient(uri); MongoDbFactory dbFactory = new SimpleMongoDbFactory(mongoClient, config.getDatabase()); return dbFactory; } @Bean(name="baseMongoTemplate") public MongoTemplate baseMongoTemplate() throws Exception { return new MongoTemplate(mongoDbFactory(baseConfiguration)); } @Bean(name="warnMongoTemplate") public MongoTemplate warnMongoTemplate() throws Exception { return new MongoTemplate(mongoDbFactory(warnConfiguration)); }}
dao层的使用
package com.topinfo.ci.dataex.dao.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.stereotype.Component;import com.alibaba.fastjson.JSON;import com.topinfo.ci.dataex.bean.UserBean;import com.topinfo.ci.dataex.dao.TestDao;@Componentpublic class TestDaoImpl implements TestDao { @Autowired @Qualifier("baseMongoTemplate") private MongoTemplate mongoTemplate; @Override public void saveUser(UserBean user) { String userJson = JSON.toJSONString(user); mongoTemplate.save(userJson, "tx"); } @Override public void saveUserList(List<UserBean> userList) { // TODO Auto-generated method stub } @Override public void updateUser(UserBean user) { // TODO Auto-generated method stub } @Override public void deleteUserById(Long id) { // TODO Auto-generated method stub }}
以上是 集成的主要配置类, server层直接调用到即可实现。 千万别谢我!!!O(∩_∩)O哈哈~