1. 程式人生 > >學習Spring——兩個你熟悉的不能再熟悉的場景使用

學習Spring——兩個你熟悉的不能再熟悉的場景使用

 最近公眾號受邀獲取了留言和贈送模板的許可權,小開心(歡迎去公眾號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中最常見對於資料來源的配置

  1. 你完全可以把jdbc.driver的值寫在beans.xml檔案中,但是對於大型專案,某一天你需要該其中的配置,那就必須從龐大而臃腫的beans.xml檔案找到你要修改的位置,並且膽戰心驚的確認是不是還有遺漏的地方。
  2. 你完全可以把這些針對性的配置提取到一個外部屬性檔案當中。寫成jdbc.properties的模樣,這樣修改起來,省時省心省力。
  3. 光有以上的配置還是無法工作的,因為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<