Bean scopes

The singleton scope


Only one shared instance of a singleton bean is managed管理, and all requests for beans with an id or ids matching that bean definition定义 result in that one specific bean instance being returned by the Spring container.

To put it another way, when you define a bean definition and it is scoped as a singleton, the Spring IoC container creates exactly精确one instance of the object defined by that bean definition. This single instance is stored in a cache缓存 of such singleton beans, and all subsequent requests and references for that named bean return the cached object.

The prototype scope


The non-singleton, prototype scope of bean deployment展开 results in the creation of a new bean instance every time a request for that specific特定 bean is made. That is, the bean is injected注入 into another bean or you request it through a getBean() method call on the container. As a rule规定, use the prototype scope for all stateful有状态 beans and the singleton scope for stateless没状态 beans.

The following diagram图表 illustrates阐明 the Spring prototype scope. A data access object (DAO) is not typically代表性 configured as a prototype, because a typical标准 DAO does not hold any conversational 回话式state; it was just easier for this author to reuse the core of the singleton diagram.

Request, session, and global session scopes


The requestsession, and global session scopes are only available if you use a web-aware Spring ApplicationContext implementation (such asXmlWebApplicationContext). If you use these scopes with regular Spring IoC containers such as the ClassPathXmlApplicationContext, you get an IllegalStateException complaining about an unknown bean scope.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值