學習Spring——兩個你熟悉的不能再熟悉的場景使用
阿新 • • 發佈:2019-01-10
最近公眾號受邀獲取了留言和贈送模板的許可權,小開心(歡迎去公眾號JackieZheng圍觀)。
我們大致的瞭解了Spring這個框架對於依賴注入的使用和詮釋可謂是淋漓盡致。因為有了Spring的這個IOC也好DI也好,我們把上街買菜的事情變成了菜主動送上門的活,這樣的“生活方式”大大的提高了我們對於Spring框架的使用者體驗。
今天主要說兩件事,想必凡是稍稍接觸過Spring框架開發的對於這些場景肯定都是眼熟透了——Spring如何使用多個外部屬性檔案以及基於註解方式配置Bean。
1. Spring使用多個外部屬性檔案
這個截圖並不稀奇,甚至完全看不出什麼邏輯,下面分別貼出各個配置檔案的內容
beans.xml
1 2 3 4 5 6 7 8 |
...
< bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
< property name="driverClassName"
value="${jdbc.driver}"/>
< property name="url"
value="${jdbc.url}"/> < property name="username"
value="${jdbc.username}"/>
< property name="password"
value="${jdbc.password}"/>
</ bean >
...
|
jdbc.properites
1 2 3 4 |
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/shake?useUnicode=true&characterEncoding=utf-8 jdbc.username=root
jdbc.password=admin
|
沒錯,這就是你絕對見過的,在Spring中最常見對於資料來源的配置
- 你完全可以把jdbc.driver的值寫在beans.xml檔案中,但是對於大型專案,某一天你需要該其中的配置,那就必須從龐大而臃腫的beans.xml檔案找到你要修改的位置,並且膽戰心驚的確認是不是還有遺漏的地方。
- 你完全可以把這些針對性的配置提取到一個外部屬性檔案當中。寫成jdbc.properties的模樣,這樣修改起來,省時省心省力。
- 光有以上的配置還是無法工作的,因為spring的beans.xml檔案並不知道該去哪裡查詢相應的變數,併為變數賦值。所以還需要在beans.xml中新增如下標籤<context:property-placeholder location="jdbc.properties"/>
測試程式碼
寫上如下的測試方法,可以用來驗證上述配置是否正確
1 2 3 4 5 6 |
@Test
public void testJDBCConfiguration() throws SQLException
{
ApplicationContext
act= new ClassPathXmlApplicationContext( "beans.xml" );
DataSource
dataSource = (DataSource) act.getBean( "dataSource" );
System.out.println(dataSource.getConnection());
}
|
顯然我們得到了理想的結果
那麼問題來了,如果我們需要使用多個外部屬性檔案,怎麼做?
直接按照上面的套路再拷貝一份試試
beans.xml
1 2 3 4 5 6< |