浏览 2678 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-12-14
最后修改:2013-12-14
struts2交给spring管理应该设置 <bean id="GoodAction" class="com.kuquo.app.good.good.action.GoodAction" autowire="byName" scope="prototype"> </bean> 如果我把scope="prototype" 改成:scope="singleton" 为什么每次请求action的时候还是会new一次? 下面看我的代码? struts2.xml <action name="Good_json" class="GoodAction"> <result name="success" type="json"> <param name="root">jsonMap</param> <param name="excludeNullProperties">true</param> </result> </action> spring.xml: <!-- 商品信息 --> <bean id="GoodAction" class="com.kuquo.app.good.good.action.GoodAction" autowire="byName" scope="singleton"> </bean> 我重写了GoodAction的构造 public GoodAction(){ System.out.println("---------------------GoodAction New()-----------------------"); } 下面看我控制台的信息: 我每次请求GoodAction 它还是会每次都实例一个 这是为什么? 我在网上搜过类似的问题,说scope为singleton的spring bean是受spring ioc容器管理的。(该singleton 不是传统java设计模式中的singleton模式) 也就是说,scope为singleton的bean随spring容器启动,销毁而实例化,销毁。 如果是这样,我想问下作为web应用spring ioc容器什么时候启动和销毁?(这里已tomcat为例) 1.如果是随tomcat启动而实例化在到tomcat关闭而销毁 那这个spring容器中的singleton bean是不是 就已经是传统的意义的单例对象了?这样会不会出现单例对象的线程完全问题? 2.如果不是上面这种情况,spring容器到底是在什么时候实例化和销毁? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-12-17
没人知道那?
|
|
返回顶楼 | |
发表时间:2013-12-17
来人那!!!
|
|
返回顶楼 | |