简介

本文主要讲在 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哈哈~