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);

 

posted @ 2019-09-25 15:21  有容奶大  阅读(7083)  评论(0)    收藏  举报