工廠方法注入、方法注入、方法替換、Web做用域、普通bean引用Web做用域的bean

 

一、工廠方法注入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要配置一下動態代理。對象

相關文章
相關標籤/搜索