一、工廠方法注入web
工廠方法也是控制反轉和單實例設計思想的主要實現方法。因爲springIoC容器以框架的方式提供工廠方法的功能,所以spring工廠方法注入只在使用一些第三方類庫會使用到。spring
a.非靜態工廠方法
有些工廠方法是是非靜態的,必須實現化工廠類後才能夠調用工廠方法。
<bean id="carFactory" class="com.test.CarFactory"/>
<bean id="car" factory-bean="carFactory" factory-method="getCar"/>session
b.靜態工廠方法
靜態工廠類不須要在配置文件中定義工廠類的bean
<bean id="car" class="com.test.Car" factory-method="getCar"/>框架
2.方法注入spa
若是但願向單例的Boss中注入復例的Car,Boss對象每次調用getCar()時都可以返回一個新的car對象,使用傳統的配置方式沒法實現;由於Boss是單例的,Car雖然是復例的,但Boss只實例化一次,以後每次調用boss的getCar返回的仍是原來的car。
實現方式有兩種,一種是經過實現接口,但這種方式對代碼有侵入性;另外一種好的方法是使用方法注入。設計
3.方法替換代理
使用某個bean的方法去替換另外一個bean的方法code
4.與Web應用環境相關的Bean的做用域request、session及globalSession在使用以前,必須先在web.xml中進行配置,好比request的配置xml
<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>
<bean name="car" class="com.test.Car" scope="request">
5.非web做用域的bean引用web做用域的bean要配置一下動態代理。對象