spring相关

spring boot 使用多数据源

2019-10-11  本文已影响0人  Waynnnn

spring boot 使用多数据源

环境配置:

涉及到的注解:

1.将数据库连接的相关信息

注意数据库连接的url 需要用jdbc-url

# all_in_one库
spring.datasource.gps.jdbc-url=jdbc:mysql://192.168.10.1:3306/gpsoriginal?useSSL=false
spring.datasource.gps.username=root
spring.datasource.gps.password=111111
spring.datasource.gps.driver-class-name=com.mysql.cj.jdbc.Driver

# gpsoriginal库
spring.datasource.allinone.jdbc-url=jdbc:mysql://192.168.10.1:3306/all_in_one?useSSL=false
spring.datasource.allinone.username=root
spring.datasource.allinone.password=111111
spring.datasource.allinone.driver-class-name=com.mysql.cj.jdbc.Driver

2.编写config类

这里结合了JdbcTemplate,如果不想用可以直接通过DataSource获取数据库连接

Configuration
public class DataSourceConfig {

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

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

    //上面是多数据源,下面是JdbcTemplate

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

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

}

3.数据调用

只需再dao层将数据源注入即可

    @Autowired
    @Qualifier("allInOneJdbcTemplate")
    JdbcTemplate jdbcTemplate;
上一篇 下一篇

猜你喜欢

热点阅读