-
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作用域(单例模式)。
查看全部
举报