Spring學習筆記
依賴注入,是Spring的核心機制,可以使Spring的Bean以配置文件的形式組織在一起,而不是以硬編碼的形式耦合在一起。第一:設(shè)值注入
是通過Setter方法傳入被調(diào)用者的實例,這種方式簡單,直觀,因此在Spring的依賴注入里面得到大量的使用。
所謂構(gòu)造注入,主要是指通過構(gòu)造函數(shù)來完成依賴關(guān)系的設(shè)定,而不是通過Setter方法。
Bean與BeanFactory的比較:
一、Bean是Spring管理的基本單位,在Spring的J2EE應(yīng)用當中,所有的組件都是Bean,Bean包括數(shù)據(jù)源,Hibernate的SessionFactory以及事務(wù)管理器。
二、BeanFactory是Spring容器的最基本接口,BeanFactory負責創(chuàng)建,配置及管理Bean,它有個子接口:ApplicationContext,因此也被稱為Spring上下文,另外,Spring容器還負責管理Bean與Bean之間的依賴關(guān)系。
<beans/>元素是Spring配置文件的根元素,<bean/>是<beans/>的子元素,<beans/>可以定義多個<bean/>元素,<bean/>定義一個<bean>,每個<bean>是接受Spring容器里的Java實例:
在定義<bean>時,必須定義兩個元素:
一、id :確定該<bean>的唯一標識符
二、class:指定該<bean>的實現(xiàn)類,在這里不能是接口。通常情況下,Spring都會使用New關(guān)鍵字直接創(chuàng)建該<bean>的實例,因此,這里必須提供Bean實現(xiàn)類的類名。
在Spring集中管理bean的實例化時,bean實例可以通過BeabFactory的GetBean(String Beanid)方法獲得,此時,BeanFactory將變成簡單工廠里的工廠,程序只需要獲取BeanFactory的引用,即可獲得Spring容器管理全部實例的引用,從而是程序不需要實現(xiàn)與具體實例的實現(xiàn)的耦合。在具體的J2EE應(yīng)用中,當應(yīng)用啟動時,會自動創(chuàng)建Spring容器的實例,組件之間直接以依賴注入的方式耦合,甚至無需訪問Spring容器。
<bean>在Spring容器中的兩種基本行為:
一、 singleton:單態(tài)行為
二、 non-singleton或者prototype:原型