微服務 第七章 SpringBoot多數據源的配置(通過JdbcTemplate的方式)


碼雲地址:https://gitee.com/yaohuiqin/SpringBootDemo

1、在application.properties 文件中配置連接參數:

spring.datasource.primary.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.primary.username=microservice
spring.datasource.primary.password=microservice
spring.datasource.primary.driver-class-name=oracle.jdbc.driver.OracleDriver

spring.datasource.secondary.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.secondary.username=microservice2
spring.datasource.secondary.password=microservice2
spring.datasource.secondary.driver-class-name=oracle.jdbc.driver.OracleDriver

2、在項目啟動類下創建配置類:

/**
 * 多數據源配置
 */
@Configuration
public class DataSourceConfig {
    //配置第一個數據源
    @Bean(name = "primaryDataSource")
    @Qualifier("primaryDataSource")
    @ConfigurationProperties(prefix="spring.datasource.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "primaryJdbcTemplate")
    public JdbcTemplate primaryJdbcTemplate(
            @Qualifier("primaryDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
    //配置第二個數據源
    @Bean(name = "secondaryDataSource")
    @Qualifier("secondaryDataSource")
    @Primary
    @ConfigurationProperties(prefix="spring.datasource.secondary")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "secondaryJdbcTemplate")
    public JdbcTemplate secondaryJdbcTemplate(
            @Qualifier("secondaryDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

 3、使用方式,在service方法中調用:

@Service
public class UserOperateServiceImpl implements UserOperateService {
    @Autowired
    @Qualifier("primaryJdbcTemplate")
    private JdbcTemplate primaryJdbcTemplate;
    @Autowired
    @Qualifier("secondaryJdbcTemplate")
    private JdbcTemplate secondaryJdbcTemplate;
    @Override
    public List<User> getAllUsersbyprimaryJdbcTemplate() {
        List list = primaryJdbcTemplate.queryForList("SELECT userId,NAME, AGE FROM tableuser");
        return list;
    }
    @Override
    public List<User> getAllUsersbysecondaryJdbcTemplate() {
        List list = secondaryJdbcTemplate.queryForList("SELECT userId,NAME, AGE FROM tableuser");
        return list;
    }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM