配置多数据源

it2025-07-15  1

前言

单数数据源的时代一去不复返,多数据源应用越来越广泛,配置各种连接执行器方便 在不同的情况下进行使用,下面就原生的 jdbcTemplate 进行注入和配置

代码

采用Springboot Bean注入的模式

package XXXXXX; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import org.springframework.beans.factory.annotation.Qualifier; 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.jdbc.core.JdbcTemplate; /** * @Author Windwardbird * @time 2020/9/27 14:23 * @describeOfFunction: 注入原生的JdbcTemplate */ @Configuration public class PrimitiveDataSourceConfig { @Primary() @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties("spring.datasource.druid.mycat") public DruidDataSource primaryDataSource() { return DruidDataSourceBuilder.create().build(); } @Bean(name = "secondaryDataSource") @Qualifier("secondaryDataSource") @ConfigurationProperties("spring.datasource.druid.mysql") public DruidDataSource secondaryDataSource() { return DruidDataSourceBuilder.create().build(); } @Bean(name = "thirdDataSource") @Qualifier("thirdDataSource") @ConfigurationProperties("spring.datasource.druid.Oracle") public DruidDataSource thirdDataSource() { return DruidDataSourceBuilder.create().build(); } @Bean(name = "primaryJdbcTemplate") public JdbcTemplate primaryTemplate(@Qualifier("primaryDataSource") DruidDataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "secondaryJdbcTemplate") public JdbcTemplate secondaryTemplate(@Qualifier("secondaryDataSource") DruidDataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "thirdJdbcTemplate") public JdbcTemplate secondaryTemplate(@Qualifier(""thirdDataSource") DruidDataSource dataSource) { return new JdbcTemplate(dataSource); } } 项目使用 @Resource(name ="primaryJdbcTemplate"private JdbcTemplate mycatJdbcTemplate @Resource(name ="secondaryJdbcTemplate"private JdbcTemplate mysqlJdbcTemplate @Resource(name ="thirdJdbcTemplate"private JdbcTemplate oracleJdbcTemplate
最新回复(0)