如何在spring中使用PropertiesFactoryBean配置DriverManagerDataSource

时间:2014-11-25 20:10:36

标签: spring configuration datasource

我很难为我的应用程序配置数据源。 DriverManagerDataSource无法从属性文件中读取属性。

以下是applicationContext.xml的相关部分: -

<bean id="selfPublishProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
        <list>
            <value>classpath:selfpublish-dev.properties</value>
            <value>classpath:jdbc-dev.properties</value>
        </list>
    </property>

</bean>
     <bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource"
      p:driverClassName="${jdbc.driverClassName}"
      p:url="${jdbc.url}"
      p:username="${jdbc.username}"
      p:password="${jdbc.password}"/>

错误消息只是说无法加载驱动程序$ {jdbc.driverClassName}。 jdbc-dev.properties有这样的条目: -

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver 

它还有其他条目,如用户名,密码等,但spring在driverClassname本身失败。

如果我把这行放在applicationContext.xml中,那就没关系了: -

<context:property-placeholder properties-ref="selfPublishProperties" />

但这不是我想要做的。我想仅使用PropertiesFactoryBean配置我的数据源,而不是使用PropertyPlaceHolderConfigurer。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这似乎是它应该如何工作的。 PropertySourcePlaceHolderConfigurer应该解析$ {...}占位符,而PropertiesFactoryBean公开java.util.Properties实例。

以下是相关的文档链接: -

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.html

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/PropertiesFactoryBean.html