千山鸟飞绝 万径人踪灭
勤练内功,不断实践招数。争取早日成为武林高手
Bean的作用域

.singleton


 在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:
 <bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:
<beans default-lazy-init="true“ ...>


.prototype
 每次从容器获取bean都是新的对象。
 
.request
.session
.global session

 

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
  PersionSevice ps2=(PersionSevice)ctx.getBean("persionServiceBean");
  System.out.println(ps==ps2);

 输出:true

可见spring容器默认的bean的产生方式是单例

 

 <bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" scope="prototype"></bean> 

 

这时候输出:false ,显然ps与ps2就不一样。

posted on 2009-08-25 12:06 笑口常开、财源滚滚来! 阅读(167) 评论(0)  编辑  收藏 所属分类: spring学习

只有注册用户登录后才能发表评论。


网站导航: