目前,我将数据库详细信息存储在属性文件中,然后使用创建数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${driverClassName}</value>
</property>
<property name="url">
<value>${url}</value>
</property>
<property name="username">
<value>${username}</value>
</property>
<property name="password">
<value>${password}</value>
</property>
</bean>
我的客户要求我们放置一个配置数据库,该数据库将存储所有 i18key 和主数据库值。
所以我需要创建一两个数据源,一个用于配置,另一个用于主数据库。
我可以使用相同的方法创建配置数据源。但是我如何创建第二个数据源,因为所有数据库详细信息都存储在配置数据库中。
您的指点将会非常有帮助。
最佳答案
您可以查看一下 Spring 的 Java 配置。您可以使用 <context:component-scan base-package="..."/>
将其与当前的 XML 配置结合起来。 .
一般方法是使用 XML 配置第一个数据源(如您当前的设置)。 XML 还应该引用“配置类”。
这是一个特殊的类,注释为@Configuration
,它获取第一个注入(inject)的数据源(或者可能是一些 DAO),然后定义一个像这样的方法:
@Bean
public DataSource secondDataSource() {
// Construct the second datasource using the configuration
// retrieved from the first datasource.
return new BasicDataSource();
}
请注意,您可能希望向其中一个(甚至两个)数据源添加限定符,以便在您希望使用 @Inject
将两个数据源注入(inject)其他 bean 时可以区分这两个数据源。或@Autowired
.
关于java - 通过获取数据源创建数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31780165/