springcloud 中配置多个数据源


1.场景描述

一个用户登录网站,网站有3个角色,点击登录之后谈成这3个角色,点击角色,决定进入哪个数据库。

2. 配置文件

 

package cn.enn.ennem;

import org.springframework.beans.factory.annotation.Qualifier;
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 org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import tk.mybatis.spring.annotation.MapperScan;

import javax.sql.DataSource;


@Configuration
public class DataSourceConfig {





@Bean(name = "cgDataSource")
@Qualifier("cgDataSource")
@ConfigurationProperties(prefix="spring.datasource.cg")
public DataSource cgDataSource() {
return DataSourceBuilder.create().build();
}

@Bean(name = "cgJdbcTemplate")
public JdbcTemplate cgJdbcTemplate( @Qualifier("cgDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}




@Bean(name = "cyDataSource")
@Qualifier("cyDataSource")
@ConfigurationProperties(prefix="spring.datasource.cy")
public DataSource cyDataSource() {
return DataSourceBuilder.create().build();
}

@Bean(name = "cyJdbcTemplate")
public JdbcTemplate cyJdbcTemplate( @Qualifier("cyDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}


@Bean(name = "dgDataSource")
@Qualifier("dgDataSource")
@ConfigurationProperties(prefix="spring.datasource.dg")
public DataSource dgDataSource() {
return DataSourceBuilder.create().build();
}


@Bean(name = "dgJdbcTemplate")
public JdbcTemplate dgJdbcTemplate( @Qualifier("dgDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}

@Primary
@Bean(name = "dataSource")
@Qualifier("dataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}


@Bean(name = "jdbcTemplate")
public JdbcTemplate jdbcTemplate( @Qualifier("dataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}

3.使用
@Autowired
@Qualifier("cgJdbcTemplate")
protected JdbcTemplate cgJdbcTemplate;
@Autowired
@Qualifier("cyJdbcTemplate")
protected JdbcTemplate cyJdbcTemplate;
@Autowired
@Qualifier("dgJdbcTemplate")
protected JdbcTemplate dgJdbcTemplate;

String sql = "select username from sys_user where username = '"+username+"' and  is_deleted = 0";

List cgList = cgJdbcTemplate.queryForList(sql);

List cyList = cyJdbcTemplate.queryForList(sql);

List dgList = dgJdbcTemplate.queryForList(sql);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM