当前位置: 代码迷 >> 综合 >> springboot2.0使用JdbcTemplate配置多数据源
  详细解决方案

springboot2.0使用JdbcTemplate配置多数据源

热度:48   发布时间:2023-12-23 01:51:07.0

springboot1.5版本与2.0版本不同

1.springboot1.5版本

package com.cpic.dataSources;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 javax.sql.DataSource;@Configuration
public class JDBCDataSourceConfig {@Bean(name = "primaryDataSource")@Qualifier("primaryDataSource")@ConfigurationProperties(prefix="spring.primary.datasource")public DataSource primaryDataSource() {//1.5版本创建DataSource的方法return DataSourceBuilder.create().build();}@Bean(name = "secondaryDataSource")@Qualifier("secondaryDataSource")@Primary@ConfigurationProperties(prefix="spring.secondary.datasource")public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "primaryJdbcTemplate")public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {return new JdbcTemplate(dataSource);}@Bean(name = "secondaryJdbcTemplate")public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {return new JdbcTemplate(dataSource);}
}

2.springboot2.0版本

package com.cpic.dataSources;import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
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;import javax.sql.DataSource;@Configuration
public class DataSourcesConfig {/*** 第一个数据源总装类* @return*/@Bean(name = "primaryJdbcTemplate")public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {System.out.println("333333333");return new JdbcTemplate(dataSource);}@Primary//表示为默认数据源,必须要有一个默认的数据源@Bean(name = "primaryDataSource")@Qualifier("primaryDataSource")@ConfigurationProperties(prefix = "spring.primary.datasource")//指定第一个数据源的名称public DataSource primaryDataSource() {System.out.println("第1个数据源连接成功!");//2.0版本创建DataSource的方法return primaryDataSourceProperties().initializeDataSourceBuilder().build();}@Primary@Bean(name = "primaryDataSourceProperties")@Qualifier("primaryDataSourceProperties")@ConfigurationProperties(prefix = "spring.primary.datasource")public DataSourceProperties primaryDataSourceProperties() {System.out.println("111111111111");return new DataSourceProperties();}/*** 第二个数据源总装类* @return*/@Bean(name = "secondaryJdbcTemplate")public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {System.out.println("444444444444444");return new JdbcTemplate(dataSource);}@Bean(name = "secondaryDataSource")@Qualifier("secondaryDataSource")@ConfigurationProperties(prefix = "spring.secondary.datasource")//指定第二个数据源的名称public DataSource secondaryDataSource() {System.out.println("第2个数据源连接成功!");return secondaryDataSourceProperties().initializeDataSourceBuilder().build();}@Bean(name = "secondaryDataSourceProperties")@Qualifier("secondaryDataSourceProperties")@ConfigurationProperties(prefix = "spring.secondary.datasource")public DataSourceProperties secondaryDataSourceProperties() {System.out.println("222222222222222222");return new DataSourceProperties();}}

 

  相关解决方案