1.pom配置
org.springframework.boot spring-boot-starter-data-jdbcmysql mysql-connector-javaruntime
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); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)