在Spring中配置两个数据源需要进行以下步骤:
添加两个数据源的配置文件(比如datasource1.properties
和datasource2.properties
),分别配置每个数据源的相关属性,如URL、用户名、密码等。
在Spring的配置文件(比如applicationContext.xml
)中引入这两个配置文件。可以使用PropertyPlaceholderConfigurer
来加载配置文件,如下所示:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:datasource1.properties</value>
<value>classpath:datasource2.properties</value>
</list>
</property>
</bean>
DataSource
bean,指定每个数据源的相关属性,如下所示:<bean id="dataSource1" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${datasource1.driverClassName}" />
<property name="url" value="${datasource1.url}" />
<property name="username" value="${datasource1.username}" />
<property name="password" value="${datasource1.password}" />
</bean>
<bean id="dataSource2" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${datasource2.driverClassName}" />
<property name="url" value="${datasource2.url}" />
<property name="username" value="${datasource2.username}" />
<property name="password" value="${datasource2.password}" />
</bean>
@Qualifier
注解指定要使用的数据源。例如,如果有一个JdbcTemplate
需要使用数据源1,可以这样配置:@Autowired
@Qualifier("dataSource1")
private DataSource dataSource1;
@Bean(name = "jdbcTemplate1")
public JdbcTemplate jdbcTemplate1() {
return new JdbcTemplate(dataSource1);
}
org.springframework.jdbc.datasource.DataSourceTransactionManager
)正确地配置了要使用的数据源,以便在使用事务时使用正确的数据源。