美文网首页SpringBoot配置
一个项目中配置多个数据库连接使用的方法

一个项目中配置多个数据库连接使用的方法

作者: dwwl | 来源:发表于2019-07-22 13:52 被阅读0次
package com.teda.z4.webApp;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

    @Bean(name = "primary")
    @ConfigurationProperties(prefix = "spring.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "second")
    @ConfigurationProperties(prefix = "spring.second")
    public DataSource secondDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "cwht")
    @ConfigurationProperties(prefix = "spring.cwht")
    public DataSource cwhtDataSource() {
        return DataSourceBuilder.create().build();
    }
}

同一项目配置不同数据源的要点就是在properties通过配置不同的前缀的数据库连接,然后以上面的这种方式配置不同的数据库连接

package com.teda.z4.webApp;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = {"com.teda.z4.webApp.dao.primary"}, sqlSessionFactoryRef = "primaryFactory")
public class PrimaryConfig {

    @Autowired
    @Qualifier("primary")
    private DataSource dataSource;

    @Bean
    @Primary
    public SqlSessionFactory primaryFactory() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        return factoryBean.getObject();
    }
}

@MapperScan是比较核心的一个注解,sqlSessionFactoryRef指定了使用了哪个数据库的sqlSession,basepackages配置了那个包下的使用这个sqlSession进行连接

相关文章

网友评论

    本文标题:一个项目中配置多个数据库连接使用的方法

    本文链接:https://www.haomeiwen.com/subject/kszilctx.html