盡量使用ApplicationContext裝配bean而不是用import
像Ant腳本中imports一樣Spring的import 元素對於模塊化bean的裝配非常有用例如
class=
com
lizjason
spring
OrderService
/>
然而比起在XML中用imports預裝配這些bean利用ApplicationContext來配置它們將更加靈活也可以使XML配置更加的易於管理你可以像下面這樣傳遞一個bean定義數組到ApplicationContext的構造函數中
String[] serviceResources ={
orderServices
xml
billingServices
xml
shippingServices
xml
};ApplicationContext orderServiceContext = newClassPathXmlApplicationContext(serviceResources);
用id來標識bean你可以用id或名字作為bean的標識
用id可讀性較差但是它可以影響XML分析器使bean的reference有效如果id由於XML IDREF約束而無法使用你可以用name作為bean的標識XML IDREF約束是指id必須以字母開始(或者是在XML聲名了的一個標點符號)後面可以是字母數字連字符下劃線冒號或full stops(不知道怎麼翻譯好)在實際應用中很少會遇到XML IDREF約束問題
在開發階段使用依賴檢查
你可以為bean的dependencycheck屬性設置一個值來取代默認的none比如說simpleobjects或者all這樣的話容器將替你做依賴有效性的檢查當一個bean的所有屬性(或者某些屬性目錄)都被明確設置或利用自動裝配時將會非常有用class=comlizjasonspringOrderServicedependencycheck=objects>value=lizjason/> 在這個例子中容器將確保這些屬性不是privitives或者保證collections是為orderService bean設置的為所有的bean設置默認的依賴檢查是可能的但這個特性由於有些bean的屬性不需要設置而很少使用
為每個配置文件加一個描述注釋
在XML配置文件中最好使用有描述性的id和name而不是成堆的注釋另外加一個文件描述頭將會非常有用這個描述可以概括文件中定義的bean另一個選擇你可以在description元素中加入描述信息例如
This file defines billing servicerelated beans and it depends onbaseServices
xml
which providesservice bean templates
用description元素的一個好處就是工具可以很容易的把描述信息從這個元素中提取出來
和team members溝通變更
當你修改java源碼後要確保更改了配置文件中的相應部分並把這個情況告知你的team membersXML配置文件也是代碼它們是程序的重要組成部分但它們很難閱讀和維護大多數時間裡你需要同時看XML配置文件和java代碼才能知道是怎麼回事
setter注入和構造函數注入優先使用前者
Spring提供了三種注入方式構造函數注入setter注入和方法注入一般我們使用前兩種
class=
com
lizjason
spring
OrderService
>class=
com
lizjason
spring
BillingService
>ref=
billingDAO
>
在這個例子中orderService bean用了構造函數注入而BillingService bean用了setter注入構造函數注入可以確保bean正確地構建但是setter注入更加的靈活和易於控制特別是當class有多個屬性並且它們中的一些是可選的情況是更是如此
不要濫用注入
就像前面提到的Spring的ApplicationContext可以替你創建java對象但不是所有的java對象都應該通過注入創建例如域對象就不應該通過ApplicationContext創建Spring是一個優秀的框架但是考慮到可讀性和可操控性基於XML配置的配置會在定義很多bean的時候出現麻煩過渡使用依賴注入將會使XML配置更加的復雜和冗長切記當使用高效的IDE時例如Eclipse and IntelliJjava代碼更加的易於閱讀維護和管理比使XML文件結論XML是Spring流行的配置格式存在大量bean定義時基於XML的配置會變得冗長而不易使用Spring提供了豐富的配置選項適當地使用這些選項可以使XML配置更加的清晰但其它的一些選項例如自動裝配可能會降低可讀性和可維護性參考本文中提到的這些技巧可能會幫助你創建干淨而易讀的XML配置文件
[] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29185.html