SpringBoot(24) — @Scope设置bean的作用

2021-08-19  本文已影响0人  奔跑的佩恩

前言

在上篇我们已经讲过了注解@Conditional可用于做IoCBean的属性检测,大家有兴趣的话,可参考SpringBoot(23) — @Conditional检测数据库连接参数
其实,加载到IoC中的Bean都是有作用域的。而设置Bean的作用域又涉及到注解@Scope的使用。那么,今天就让我们来学习下bean作用域的相关知识吧。

今天涉及的知识有:

  1. SpringBean的作用域
  2. @Scope设置Bean的作用域
  3. Spring MVC 作用域

一. Spring中Bean的作用域

Spring中,Bean的作用域为以下列表:

作用域类型 使用范围 作用域描述
singleton 所有Spring应用 默认值,IoC容器只存在单例
prototype 所有Spring应用 每次从IoC容器中取出都是一个bean,都创建一个新的bean
session Spring web应用 Http会话
application Spring web应用 web工程生命周期
request Spring web应用 web工程单次请求
globalSession Spring web应用 在一个全局的 httpSession中,一个bean对应一个实例。实践中基本不使用

这里我们需要注意的是,在Spring中,Bean的默认作用域为单例模式,即为singleton模式。

二. @Scope 设置 Bean 的作用域

这里我们新建一个类——TestScope, 用于测试@Scope设置Bean作用域的问题。下面先列出项目架构:

image.png
以上截图中AppConfig为项目配置文件。
下面先给出TestScope代码(标注@Component注解):
上一篇下一篇

猜你喜欢

热点阅读