-
pom.xml中修改:
修改打包方法為war
<packaging>war</packaging>
使用的jar包,增加了spring-web和spring-webmvc
查看全部 -
(2)如果時Servlet 2.4以下
在外部的xml里面,增加一個RequestContextFilter,對每一個請求附帶一個上下文環境。
查看全部 -
如果不適用DispatcherServlet,那么需要增加listener或filter:
(1)如果時Servlet 2.4以上
在外部的xml里面,增加一個RequestContextListener,作用是在Web應用在初始化的時候會加載spring的上下文。
查看全部 -
SpringWeb上下文環境
如果使用DispatcherServlet,則不需要增加其他任何配置,例如
查看全部 -
第二步,在spring.xml中去除<property />修改為<lookup-method />
<lookup-method?name="createBean2"?bean="bean2"/>
查看全部 -
方法注入步驟:
第一步,將原本直接定義Bean2,修改為由虛函數方法導入。(圖中上下對比)
protected?abstract?Bean2?createBean2();
注意:需要把類也定義成虛類。
查看全部 -
方法注入 應用場景:
Bean1是singleton,Bean2是prototype,Bean1依賴Bean2。我們希望每次調用Bean1的某個方法是,該方法拿到的Bean2都是一個新的實例。
查看全部 -
<table width="0"><tbody><tr class="firstRow"><td valign="top" rowspan="2" colspan="2">?</td><td valign="top" rowspan="1" colspan="2">Bean1作用域<br /></td></tr><tr><td width="68" valign="top">singleton</td><td width="68" valign="top">prototype</td></tr><tr><td width="68" valign="top" rowspan="2" colspan="1">Bean2作用域</td><td width="68" valign="top">singleton</td><td width="68" valign="top"><p>Bean1單實例</p><p>Bean2單實例</p></td><td width="68" valign="top"><p>Bean1多實例</p><p>Bean2單實例</p></td></tr><tr><td width="68" valign="top">prototype</td><td width="68" valign="top"><p>Bean1單實例</p><p>Bean2單實例</p></td><td width="68" valign="top"><p>Bean1多實例</p><p>Bean2多實例</p></td></tr></tbody></table><p><br /></p>查看全部
-
如果Bean2是多例模式,Bean1是單例模式,Bean1和Bean2都是單實例。
如果Bean2是單例模式,Bean1是多例模式,那么創建的兩個Bean1不一樣,但注入Bean1的兩個Bean2是同一個實例。
查看全部 -
測試Prototype作用域結果:
每次獲取bean2的實例都是不一樣的,而且用bean2創建的bean1也是不一樣的。
查看全部 -
Prototype作用域寫法:
是在<bean />標簽中加上scope=“prototype”
<bean?class="com.imooc.spring.ioc.class007.Bean2"?id="bean2"?scope="prototype"/>
查看全部 -
測試Singleton作用域的test代碼
在同一上下文context中,獲取的bean2一樣。
注意:Singleton作用域具有只在同一個上下文context中適用的局限性,兩個上下文contest獲取的bean2不一樣。
查看全部 -
Singleton作用域寫法:
是在<bean />標簽中加上scope=“singleton”
<bean?class="com.imooc.spring.ioc.class007.Bean2"?id="bean2"?scope="singleton"/>
查看全部 -
Prototype作用域(多例模式)
有多個Bean被創建,每次想Spring上下文請求該Bean都會new一個新的實例。
查看全部 -
Singleton作用域(單例模式)
只有一個Bean被創建,且這個Bean被注入到任何需要它的地方。
沒加scope,默認為Singleton作用域(單例模式)。
查看全部
舉報