Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.5 Bean的作用域

6.1 Bean的作用域

当你创建一个Bean的定义,你就为这个Bean定义的类创建了一个配方。Bean的定义是一个配方的想法是重要的,因为这意味着,你可以通过这个配方创建许多对象实例。

您不仅可以控制要插入到从特定bean定义创建的对象的各种依赖项和配置值,还可以控制从特定bean定义创建的对象的作用域。这种方式是强大且灵活的,您可以通过配置选择创建的对象的作用域,而不必在Java类的级别设置对象的作用域。可以将Bean定义为多个作用域中的一个:开箱即用,Spring Framework支持五个作用域,其中三个作用域仅在您使用Web的ApplicationContext时才有用。

开箱即用的作用域有下面几个,你也可以创建自定义作用域。

表6.3 Bean的作用域

作用域

描述

singleton

(默认)Bean定义的作用域为每个Spring IoC容器只拥有一个单一的对象

prototype

Bean定义的作用域为任意数量的对象实例

request

扫描二维码关注公众号,回复: 5139390 查看本文章

Bean定义的作用域为HTTP请求的生命周期,那就是说,每个HTTP请求拥有自己的Bean的实例。仅在Spring Web的ApplicationContext上下文生效。

session

Bean定义的作用域为HTTP Session的生命周期。仅在Spring Web的ApplicationContext上下文生效。

global session

Bean定义的作用域为HTTP Session的生命周期。一般仅在Portlet上下文使用。仅在Spring Web的ApplicationContext上下文生效。

application

Bean定义的作用域为ServletContext的生命周期。仅在Spring Web的ApplicationContext上下文生效。

注意:从Spring 3.0开始,线程范围可用,但默认情况下未注册。 有关更多信息,请参阅SimpleThreadScope的文档。 有关如何注册此范围或任何其他自定义范围的说明,请参阅“使用自定义范围”一节。

猜你喜欢

转载自www.cnblogs.com/springmorning/p/10345512.html