Spring中BeanFactory獲取Java Bean
1、id JavaBean在BeanFactory中的***標識,代碼中通過BeanFactory獲取Java Bean實例時需以此作為索引名稱。
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將自動根據Java Bean對應的屬性類型加以匹配。下面的”desc”屬性提供了一個null值的設定示例。注意代表一個空字符串,如果需要將屬性值設定為null,必須使用節點。
8、指定了屬性對BeanFactory中其他Bean的引用關系。示例中,TheAction的dataSource屬性引用了id為dataSource 的Bean。BeanFactory將在運行期創建dataSource bean實例,并將其引用傳入TheAction Bean的dataSource屬性。
下面的代碼演示了如何通過BeanFactory獲取Java Bean實例: InputStream is = new FileInputStream("bean.xml"); XmlBeanFactory factory = new XmlBeanFactory(is); Action action = (Action) factory.getBean("TheAction"); 此時我們獲得的Action實例,由BeanFactory進行加載,并根據配置文件進行了初始化和屬性設定。
【編輯推薦】