zoukankan      html  css  js  c++  java
  • mongodb实现多数据源 & 集成高版本mongodb3.11.2

    MongoDB Java基本操作
    https://www.cnblogs.com/RealWorld/p/9209687.html

    springboot2与mongodb整合
    https://blog.csdn.net/p_programmer/article/details/89289067?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-7

    springboot集成高版本mongodb3.11.2
    https://blog.csdn.net/xjmfc/article/details/106929136?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1

    SpringBoot 2.2.0 SpringData MongoDB使用示例(一)
    https://blog.csdn.net/pingpei1133/article/details/103104426?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.compare&depth_1-
    utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.compare

    mongodb实现多数据源
    https://www.cnblogs.com/mczhou2/p/12713042.html

    ______________________________________________________________________________________________________________________________________________

    mongodb实现多数据源

     

           最近在开发过程中遇到一个需求,想要实现该需求需要把一个mongodb库里面的表&数据复制到另一个mongodb库。首先需要做的一件事就是配置多数据源,由于项目采用SpringBoot,所以配置多数据源也是在这个框架基础上的。话不多说,直接上代码

    首先pom.xml需要引入如下配置

     
    1 <dependency>
    2    <groupId>org.springframework.boot</groupId>
    3    <artifactId>spring-boot-configuration-processor</artifactId>
    4    <optional>true</optional>
    5 </dependency>
    6 <dependency>
    7    <groupId>org.springframework.boot</groupId>
    8    <artifactId>spring-boot-starter-data-mongodb</artifactId>
    9 </dependency>
     

    分别定义三个类AbstractMongoConfig、PrimaryMongoConfig、SecondMongoConfig

     
     1 import com.mongodb.MongoClientURI;
     2 import org.springframework.data.mongodb.MongoDbFactory;
     3 import org.springframework.data.mongodb.core.MongoTemplate;
     4 import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
     5 
     6 /**
     7  * 描述
     8  *
     9  * @author mczhou2 2020/3/2010:50
    10  */
    11 public abstract  class AbstractMongoConfig {
    12     //连接MongoDB地址
    13     private String uri;
    14     /**
    15      * 获取mongoDBTemplate对象
    16      */
    17     public abstract MongoTemplate getMongoTemplate() throws Exception;
    18     /**
    19      * 创建mongoDb工厂
    20      */
    21     public MongoDbFactory mongoDbFactory() throws Exception {
    22         MongoClientURI mongoclienturi = new MongoClientURI(uri);
    23         return new SimpleMongoDbFactory(mongoclienturi);
    24     }
    25     public String getUri() {
    26         return uri;
    27     }
    28 
    29     public void setUri(String uri) {
    30         this.uri = uri;
    31     }
    32 }
     
     
    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.core.MongoTemplate;
    
    /**
     * 描述
     *
     * @author mczhou2 2020/3/20 10:51
     */
    @Configuration
    @ConfigurationProperties(prefix = "spring.data.mongodb.primary")
    public class PrimaryMongoConfig extends AbstractMongoConfig{
        @Override
        @Primary
        @Bean(name = "primaryMongoTemplate")
        public MongoTemplate getMongoTemplate() throws Exception {
            return new MongoTemplate((mongoDbFactory()));
        }
    }
     
     
     1 import org.springframework.boot.context.properties.ConfigurationProperties;
     2 import org.springframework.context.annotation.Bean;
     3 import org.springframework.context.annotation.Configuration;
     4 import org.springframework.context.annotation.Primary;
     5 import org.springframework.data.mongodb.core.MongoTemplate;
     6 
     7 /**
     8  * 描述
     9  *
    10  * @author mczhou2 2020/3/2010:51
    11  */
    12 @Configuration
    13 @ConfigurationProperties(prefix = "spring.data.mongodb.second")
    14 public class SecondaryMongoConfig extends AbstractMongoConfig{
    15 
    16     @Override
    17     @Primary
    18     @Bean(name = "secondMongoTemplate")
    19     public MongoTemplate getMongoTemplate() throws Exception {
    20         return new MongoTemplate((mongoDbFactory()));
    21     }
    22 }
     

    接下来启动类的注解需要屏蔽之前的类,否在项目启动报错

     
     1 import org.springframework.boot.SpringApplication;
     2 import org.springframework.boot.autoconfigure.SpringBootApplication;
     3 import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
     4 import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
     5 
     6 @SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
     7 public class DemoApplication {
     8     public static void main(String[] args) {
     9         SpringApplication.run(DemoApplication.class,args);
    10     }
    11 }
     

    至此,mongodb多数据源就配置好了。这时候大家也许会问,前期准备工作好了,到底怎么用?你确定你想知道,那下回来我手把手教你。

  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/13304944.html
Copyright © 2011-2022 走看看