Spring+JDBC配置多数据源

Spring+JDBC配置多数据源,第1张

Spring+JDBC配置数据源

1.pom配置


	org.springframework.boot
	spring-boot-starter-data-jdbc


	mysql
	mysql-connector-java
	runtime

2.application.properties配置文件

spring.one.datasource.url=jdbc:mysql://127.0.0.1:3306/test2?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.one.datasource.username=root
spring.one.datasource.password=123456


spring.two.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.two.datasource.username=root
spring.two.datasource.password=123456

3.启动类SpringBootApplication.class 

//移除DataSourceAutoConfiguration、DataSourceTransactionManagerAutoConfiguration、JdbcTemplateAutoConfiguration
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
		DataSourceTransactionManagerAutoConfiguration.class,
		JdbcTemplateAutoConfiguration.class})
public class SpringBootApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootApplication.class, args);
	}

}

4.配置不同数据源配置文件

@Configuration
@Slf4j
public class oneDataSourceConfig {

    @Bean
    @ConfigurationProperties("spring.one.datasource")
    public DataSourceProperties oneDataSourceProperties(){
        return new DataSourceProperties();
    }

    @Bean
    public DataSource oneDateSource(){
        DataSourceProperties oneDataSourceProperties = oneDataSourceProperties();
        log.info("oneDatasource:"+oneDataSourceProperties.getUrl());
        return oneDataSourceProperties.initializeDataSourceBuilder().build();
    }

    @Bean
    public JdbcTemplate oneJdbcTemplate(){
        return new JdbcTemplate(oneDateSource());
    }

    @Bean
    @Resource
    public PlatformTransactionManager onePlatformTransactionManager(){
        return new DataSourceTransactionManager(oneDateSource());
    }

}

@Configuration
@Slf4j
public class TwoDataSourceConfig {

    @Bean
    @ConfigurationProperties("spring.two.datasource")
    public DataSourceProperties twoDataSourceProperties(){
        return new DataSourceProperties();
    }

    @Bean
    public DataSource twoDateSource(){
        DataSourceProperties twoDataSourceProperties = twoDataSourceProperties();
        log.info("twoDatasource:"+twoDataSourceProperties.getUrl());
        return twoDataSourceProperties.initializeDataSourceBuilder().build();
    }

    @Bean
    public JdbcTemplate twoJdbcTemplate(){
        return new JdbcTemplate(twoDateSource());
    }


    @Bean
    @Resource
    public PlatformTransactionManager twoPlatformTransactionManager(){
        return new DataSourceTransactionManager(twoDateSource());
    }
}

5.测试

  @Resource(name = "oneJdbcTemplate")
    JdbcTemplate jdbcTemplate;
    @Resource(name = "twoJdbcTemplate")
    JdbcTemplate jdbcTemplate2;

    @GetMapping("test")
    public void test(){
        Integer fpck = jdbcTemplate.queryForObject("select count(1) from tb_stockout where order_type = ? ", Integer.class, "FPCK");
        Integer fpck1 = jdbcTemplate2.queryForObject("select count(1) from tb_stockout where order_type = ? ", Integer.class, "FPCK");

        System.out.println(fpck);
        System.out.println(fpck1);
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5685198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存