java - 通过获取数据源创建数据源

标签 java spring hibernate

目前,我将数据库详细信息存储在属性文件中,然后使用创建数据源

<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/

相关文章:

java - 如何显示在组合框中选择的颜色

java - 如何在 Spring 非 EE 应用程序中注入(inject) infinispan 缓存?

java - Spring Boot与Kafka : How to write unit Integration tests excluding kafka configuration

java - 如何使用 jackson 将树 json 对象映射到 List<>

java - Hibernate - 如何根据另一个对象的属性对结果进行排序

java - 保护密码 SHA-1 Java

java - Can't parcel a recycled bitmap 使用Fresco加载图片到通知时报错

java - Gdx exit 关闭整个应用程序 - 如何仅关闭 gdx 框架?

java - Spring 重试: NeverRetryLogic Not working as I expected with ExceptionClassifierRetryPolicy

mysql - org.springframework.web.multipart.MultipartException : Current request is not a multipart request