Board logo

标题: Spring Boot配置MongoDB多数据源(2) [打印本页]

作者: look_w    时间: 2019-5-18 09:55     标题: Spring Boot配置MongoDB多数据源(2)

数据源加载

数据源加载需要新建继承AbstractMongoConfigure的加载类,有多少个数据源就需要新建多少个数据源加载类。
我们这里需要新建两个数据源加载类
新建用户数据源加载类

UserMongoConfig.java

package com.biologic.util;

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;

//prefix需要与配置文件中用户user数据源的配置前缀对应
@Configuration  
@ConfigurationProperties(prefix = "spring.data.mongodb.user")
public class UserMongoConfig extends AbstractMongoConfig {     


     @Primary
     @Bean(name = "mongoTemplate")
     @Override
     public  MongoTemplate getMongoTemplate() throws Exception {        
         return new MongoTemplate(mongoDbFactory());   
     }


}



新建日志数据源加载类

package com.biologic.util;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoTemplate;

//prefix需要与配置文件中日志log数据源的配置前缀对应
@Configuration  
@ConfigurationProperties(prefix = "spring.data.mongodb.log")
public class LogMongoConfig extends AbstractMongoConfig {     

     @Override   
     @Bean(name = "logMongoTemplate")
     public  MongoTemplate getMongoTemplate() throws Exception {        
         return new MongoTemplate(mongoDbFactory());   
     }


}

需要注意的是 多个数据源中有一个需要设置bean名为mongoTemplate,而且注释为@Primary,否则WebMvcConfigurationSupport.class等会报错找不到mongoTemplate。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0