Spring Bean Configuration Sample
id="TheAction"
class="net.xiaxin.spring.qs.UpperAction"
singleton="true"
init-method="init"
destroy-method="cleanup"
depends-on="ActionManager">
1、 id
Java Bean在BeanFactory中的唯一標識,代碼中通過BeanFactory獲取JavaBean實例時需以此作為索引名稱。
2、 class
Java Bean 類名
3、 singleton
指定此Java Bean是否采用單例(Singleton)模式,如果設為“true”,則在BeanFactory作用范圍內,只維護此Java Bean的一個實例,代碼通過BeanFactory獲得此Java Bean實例的引用。反之,如果設為“false”,則通過BeanFactory獲取此Java Bean實例時,BeanFactory每次都將創建一個新的實例返回。
4、init-method
初始化方法,此方法將在BeanFactory創建JavaBean實例之後,在向應用層返回引用之前執行。一般用於一些資源的初始化工作。
5、destroy-method
銷毀方法。此方法將在BeanFactory銷毀的時候執行,一般用於資源釋放。
6、 depends-on
Bean依賴關系。一般情況下無需設定。Spring會根據情況組織各個依賴關系的構建工作(這裡示例中的depends-on屬性非必須)。只有某些特殊情況下,如JavaBean中的某些靜態變量需要進行初始化(這是一種BadSmell,應該在設計上應該避免)。通過depends-on指定其依賴關系可保證在此Bean加載之前,首先對depends-on所指定的資源進行加載。
7、
通過
指定了屬性對BeanFactory中其他Bean的引用關系。示例中,TheAction的dataSource屬性引用了id為dataSource的Bean。BeanFactory將在運行期創建dataSource bean實例,並將其引用傳入TheAction Bean的dataSource屬性。
下面的代碼演示了如何通過BeanFactory獲取Bean實例:
InputStream is = new FileInputStream("bean.XML");
XmlBeanFactory factory = new XMLBeanFactory(is);
Action action = (Action) factory.getBean("TheAction");
此時我們獲得的Action實例,由BeanFactory進行加載,並根據配置文件進行了初始化和屬性設定。