SpringBoot系列:Spring Boot多数据源,jdbcTemplate方式
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@SpringBootApplication
@EnableTransactionManagement
public class MultiDataSourceJdbcTemplateApplication {
public static void main(String[] args) {
SpringApplication.run(MultiDataSourceJdbcTemplateApplication.class, args);
}
@Bean
@Primary
public DataSource primaryDataSource() {
// 配置主数据源
return new MyPrimaryDataSource();
}
@Bean
public DataSource secondaryDataSource() {
// 配置第二数据源
return new MySecondaryDataSource();
}
@Bean
public JdbcTemplate primaryJdbcTemplate(DataSource primaryDataSource) {
return new JdbcTemplate(primaryDataSource);
}
@Bean
public JdbcTemplate secondaryJdbcTemplate(DataSource secondaryDataSource) {
return new JdbcTemplate(secondaryDataSource);
}
@Bean
@Primary
public PlatformTransactionManager transactionManager(DataSource primaryDataSource) {
return new DataSourceTransactionManager(primaryDataSource);
}
}
class MyPrimaryDataSource implements DataSource {
// 实现DataSource接口,并配置数据源
}
class MySecondaryDataSource implements DataSource {
// 实现DataSource接口,并配置数据源
}
这个示例代码展示了如何在Spring Boot应用中配置和使用多个数据源。通过定义不同的DataSource
Bean,并为每个数据源创建对应的JdbcTemplate
实例,你可以很容易地管理和操作不同的数据库。同时,使用@Primary
注解标注主数据源,这是Spring Boot默认选择的数据源。此外,事务管理器PlatformTransactionManager
也应该针对主数据源配置对应的实现。
评论已关闭