項目場景:
spring抽取properties檔案中的鍵值,注入到bean中連接配接資料庫
問題描述:
之前是直接寫死資料庫連接配接資訊,像這樣
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="這個是url"/>
<property name="username" value="資料庫使用者名"/>
然後今天學到了個新技術,直接抽取properties檔案中的資訊,然後注入到其中,就可以實作解耦合,十分友善,但是按着視訊中的步驟我的卻不能運作,以下為錯誤代碼
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
然後報了一堆錯誤,這裡就不貼了
原因分析:
經過排查,發現隻有username這個property被注入的時候是有問題的,也就是說如果直接用字元串寫死是不會報錯的,我懷疑是有一些系統命名的關鍵字無法被抽取的原因。
解決方案:
解決很簡單,在properties檔案中将這個鍵名改寫下
從原來的username改寫為jdbc.username
然後相對應的在xml中改寫
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}"/>
<property name="url" value="${url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${password}"/>
</bean>
然後就行了