在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操作独立运行。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: spring事务管理的方式有哪几种