在Spring中配置多个数据源可以通过以下步骤实现:
1. 创建数据源配置类:创建一个类,用于配置数据源的相关信息,包括数据库的连接URL、用户名、密码等。可以使用`@Configuration`注解将该类标记为配置类。
@Configuration public class DataSourceConfig {@Bean
public DataSource dataSource1() {
// 配置第一个数据源
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(“com.mysql.jdbc.Driver”);
dataSource.setUrl(“jdbc:mysql://localhost:3306/db1”);
dataSource.setUsername(“user1”);
dataSource.setPassword(“password1”);
return dataSource;
}
@Bean
public DataSource dataSource2() {
// 配置第二个数据源
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(“com.mysql.jdbc.Driver”);
dataSource.setUrl(“jdbc:mysql://localhost:3306/db2”);
dataSource.setUsername(“user2”);
dataSource.setPassword(“password2”);
return dataSource;
} }
2. 配置数据源事务管理器:在Spring中,事务管理器是用于管理事务的对象。可以使用@Bean
注解将事务管理器配置为Spring的Bean。
@Configuration public class TransactionManagerConfig {@Autowired
@Qualifier(“dataSource1”)
private DataSource dataSource1;
@Autowired
@Qualifier(“dataSource2”)
private DataSource dataSource2;
@Bean
public PlatformTransactionManager transactionManager1() {
return new DataSourceTransactionManager(dataSource1);
}
@Bean
public PlatformTransactionManager transactionManager2() {
return new DataSourceTransactionManager(dataSource2);
} }
3. 配置数据源的JdbcTemplate:JdbcTemplate是Spring提供的用于执行SQL语句的工具类。可以使用@Bean
注解将JdbcTemplate配置为Spring的Bean。
@Configuration public class JdbcTemplateConfig {@Autowired
@Qualifier(“dataSource1”)
private DataSource dataSource1;
@Autowired
@Qualifier(“dataSource2”)
private DataSource dataSource2;
@Bean
public JdbcTemplate jdbcTemplate1() {
return new JdbcTemplate(dataSource1);
}
@Bean
public JdbcTemplate jdbcTemplate2() {
return new JdbcTemplate(dataSource2);
} }
完成以上配置后,就可以通过注入DataSource
、PlatformTransactionManager
或JdbcTemplate
来使用相应的数据源了。
注意:在使用多数据源时,需要为每个数据源配置独立的事务管理器和JdbcTemplate对象,以确保每个数据源的事务和SQL操作独立运行。