Springで2つのデータソースを構成する方法
Springでの2つのデータソースの設定には、次の手順が必要です。
- データソース1.propertiesとデータソース2.propertiesなどの2つのデータソースの構成ファイルを追加し、各データソースの関連プロパティ(URL、ユーザー名、パスワードなど)をそれぞれ設定します。
- PropertyPlaceholderConfigurerを利用することで,アプリケーションコンテキストファイル(applicationContext.xmlなど)からこれらのプロパティファイルをロードできます。
<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>
- データソース
<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>
- そもそも論外な話
- JdbcTemplate
@Autowired
@Qualifier("dataSource1")
private DataSource dataSource1;
@Bean(name = "jdbcTemplate1")
public JdbcTemplate jdbcTemplate1() {
return new JdbcTemplate(dataSource1);
}
- Spring JDBCのDataSourceTransactionManager