druid 數據源 使用屬性文件的一個坑


直接上代碼:

<bean id="propertiesFactoryBean"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath*:properties/druid.properties</value>
            </list>
        </property>
    </bean>

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

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          init-method="init" destroy-method="close">
        <property name="url" value="${jdbc-url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${jdbc-pwd}"/>
        <property name="initialSize" value="1"/>
        <property name="minIdle" value="1"/>
        <property name="maxActive" value="20"/>
        <property name="maxWait" value="60000"/>
        <property name="timeBetweenEvictionRunsMillis" value="60000"/>
        <property name="minEvictableIdleTimeMillis" value="300000"/>
        <property name="validationQuery" value="select 1 from dual"/>
        <property name="testWhileIdle" value="true"/>
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>
        <property name="poolPreparedStatements" value="true"/>
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
        <property name="filters" value="stat" />
    </bean>

上面配置了一個druid數據源,其中url,username,password從屬性文件druid.properties讀取,該屬性文件內容如下:

jdbc-url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc-driver=oracle.jdbc.driver.OracleDriver
username=test
jdbc-pwd=123456

發現死活連接不上,一直提示:

java.sql.SQLException: ORA-01017: invalid username/password; logon denied

但其實用戶名、密碼是對的,可以用pl/sql developer之類的工具連上oracle,正當快要崩潰的時候,把druid.properties中的username=test,換了個名字,改成:

jdbc-user=test

配置也相應改成:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="${jdbc-url}"/>
<property name="username" value="${jdbc-user}"/>
<property name="password" value="${jdbc-pwd}"/>

居然就正常了,建議:屬性文件中的key最好不要跟druid的成員名重名。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM