zoukankan      html  css  js  c++  java
  • Spring Boot多数据源配置(二)MongoDB

    Spring Boot多数据源配置(一)durid、mysql、jpa 整合中已经讲过了Spring Boot如何配置mysql多数据源。本篇文章讲一下Spring Boot如何配置mongoDB多数据源。

    配置文件

    spring:
    #mongo配置
      data:
        mongodb:
          statis:
            database: kxlist_statis
            uri: 192.168.1.115:27017
          list:
            database: kxlist_list
            uri: 192.168.1.115:27017
    
    

    JAVA文件:

    • 总的配置:
    @Configuration
    public class MultipleMongoProperties {
        @Bean(name="statisMongoProperties")
        @Primary
        @ConfigurationProperties(prefix="spring.data.mongodb.statis")
        public MongoProperties statisMongoProperties() {
            System.out.println("-------------------- statisMongoProperties init ---------------------");
            return new MongoProperties();
        }
    
        @Bean(name="listMongoProperties")
        @ConfigurationProperties(prefix="spring.data.mongodb.list")
        public MongoProperties listMongoProperties() {
            System.out.println("-------------------- listMongoProperties init ---------------------");
            return new MongoProperties();
        }
    
    }
    
    • statis数据源配置
    @Configuration
    @EnableMongoRepositories(basePackages = "com.kxlist.statistics.domain.statis", mongoTemplateRef = "statisMongo")
    public class StatisMongoMongoTemplate {
        @Autowired
        @Qualifier("statisMongoProperties")
        private MongoProperties mongoProperties;
    
        @Primary
        @Bean(name = "statisMongo")
        public MongoTemplate statisMongoTemplate() throws Exception {
            return new MongoTemplate(statisFactory(this.mongoProperties));
        }
    
        @Bean
        @Primary
        public MongoDbFactory statisFactory(MongoProperties mongoProperties) throws Exception {
    
            ServerAddress serverAdress = new ServerAddress(mongoProperties.getUri());
    
            return new SimpleMongoDbFactory(new MongoClient(serverAdress), mongoProperties.getDatabase());
    
        }
    }
    
    • list数据源配置
      和statis的配置很相似
    @Configuration
    @EnableMongoRepositories(basePackages = "com.kxlist.statistics.domain.list", mongoTemplateRef = "listMongo")
    public class ListMongoTemplate {
        @Autowired
        @Qualifier("listMongoProperties")
        private MongoProperties mongoProperties;
    
        @Bean(name = "listMongo")
        public MongoTemplate listTemplate() throws Exception {
            return new MongoTemplate(listFactory(this.mongoProperties));
        }
    
        @Bean
        public MongoDbFactory listFactory(MongoProperties mongoProperties) throws Exception {
    
            ServerAddress serverAdress = new ServerAddress(mongoProperties.getUri());
    
            return new SimpleMongoDbFactory(new MongoClient(serverAdress), mongoProperties.getDatabase());
    
        }
    }
    

    在相应的包下建立实体类和Repository就可以了。

    首发地址

    http://www.devzxd.top/2017/06/06/springboot-datasource-mongo.html

  • 相关阅读:
    实习第一周小记------生活不易
    第一次实习面试感受----苦逼程序员生活初体验
    第一次实习面试感受----苦逼程序员生活初体验 分类: 程序人生 2013-07-28 14:13 2395人阅读 评论(0) 收藏
    Java-基于JDK的动态代理
    JS字符串去替换元素再转换成数组
    byte溢出栗子
    Java链式写法
    Scala笔记
    Java反射使用方法
    Java数组3种创建方式
  • 原文地址:https://www.cnblogs.com/devzxd/p/springboot-datasource-mongo.html
Copyright © 2011-2022 走看看