Spring bean单例模式

Spring的原型Bean与单例Bean的设置
spring单例Bean
在spring中的Bean缺省的情况下是单例模式的,在spring容器中分配Bean的时候(无论通过getBean()还
是通过依赖注入(IOC)),它总是返回同一个Bean的实例,如果你想每次向上下文请求一个bean的时候
总是得到一个不同的实例,或者想每次想从spring容器中得到一个bean的不同实例,需要将bean定义为原
型模式,定义为原型模式意味着你是定义一个bean的类,而不是一个单一的bean的实例,bean的实例都是
按照这个类而创建的。


spring原型Bean
在spring中<bean>的singleton属性告诉上下文这个bean是原型bean或者是单例bean。bean的缺省值为true,
如果设为false的话,就把这个bean定义成了原型bean。
例如:<bean id=”test” class=”demo.Demo” singleton=”false” />


在spring2.x中<bean id=”test”scope=”prototype”/>将这样配置,但是如果想使用spring的原型bean必
须通过getBean(”test”)这样的方式,而不能通过使用IOC方式,因为:getBean将每次都有spring来装配
转发,而IOC将只是一次注入的目标bean中,以后不再重新注入。这样通过getBean方式将得到一个原型bean。
如果bean使用的是有限资源,如数据库和网络链接的话不需要使用原型bean,正常不要把 singleton=”false”
或者scope=”prototype”除非必要。


Spring 单例Bean和Java单例模式的区别
Spring的单例是基于BeanFactory也就是spring容器,单例Bean在此Spring容器内是单个的,Java的单例
是基于JVM,每个JVM内一个单例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值