【Java第34期】:Bean的六种作用域

article/2025/9/22 22:01:32

作者:有只小猪飞走啦

博客地址:https://blog.csdn.net/m0_62262008?type=blog

内容:介绍Bean的六种作用域的效果以及适用场景

在这里插入图片描述

文章目录

  • 前言
  • 一,作用域定义以及Bean的六种作用域是什么?
  • 二,singleton(单例作用域)
  • 三,prototype(原型作用域(多例作用域))
  • 四,request(请求作用域)
  • 五,session(回话作用域)
  • 六,application(全局作用域)
  • 七,websocket( HTTP WebSocket 作用域)

前言

本博客内容是小博主在学习之后的总结,如果哪里有错误或者不太完善的都可以私聊我哈,如果哪里你不太理解的也可以来私聊我哦~

一,作用域定义以及Bean的六种作用域是什么?

我们常说的作用域是限定程序中变量的可用范围或者是源代码中定义变量的某个区域。那么Bean的作用域是什么呢?
Bean的作用域是指Bean在Spring整个框架中的某种行为模式,比如singleton单例作用域,就表示Bean在整个Spring中只有一份,它是全局共享的,当其他人修改了这个值之后,另一个人读取到的就是被修改的值。
Spring容器在初始化一个Bean的实例时,同时会指定该实例的作用域,Spring有六种作用域,其中有四种是基于Spring MVC 生效的,Bean的六种作用域:
1,singleton : 单例作用域
2,prototype:原型作用域(多例作用域)
3,request:请求作用域
4,session:回话作用域
5,application:全局作用域
6,websocket: HTTP WebSocket 作用域

下面我们一一详细来介绍每种作用域:

二,singleton(单例作用域)

● 官⽅说明:(Default) Scopes a single bean definition to a single object instance for each Spring IoC container.
● 描述:该作⽤域下的Bean在IoC容器中只存在⼀个实例:获取Bean(即通过applicationContext.getBean等⽅法获取)及装配Bean(即通过@Autowired注⼊)都是同⼀个对象。
● 场景:通常⽆状态的Bean使⽤该作⽤域。⽆状态表示Bean对象的属性状态不需要更新
● 备注:Spring默认选择该作⽤域

三,prototype(原型作用域(多例作用域))

● 官⽅说明:Scopes a single bean definition to any number of object instances.
● 描述:每次对该作⽤域下的Bean的请求都会创建新的实例:获取Bean(即通过applicationContext.getBean等⽅法获取)及装配Bean(即通过@Autowired注⼊)都是新的对象实例。
● 场景:通常有状态的Bean使⽤该作⽤域

四,request(请求作用域)

● 官⽅说明:Scopes a single bean definition to the lifecycle of a single HTTP request. That is, each HTTP request has its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext.
● 描述:每次http请求会创建新的Bean实例,类似于prototype
● 场景:⼀次http的请求和响应的共享Bean
● 备注:限定SpringMVC中使⽤

五,session(回话作用域)

● 官⽅说明:Scopes a single bean definition to the lifecycle of an HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext.
● 描述:在⼀个http session中,定义⼀个Bean实例
● 场景:⽤户回话的共享Bean, ⽐如:记录⼀个⽤户的登陆信息
● 备注:限定SpringMVC中使⽤

六,application(全局作用域)

● 官⽅说明:Scopes a single bean definition to the lifecycle of a ServletContext. Only valid in the context of a web-aware Spring ApplicationContext.
● 描述:在⼀个http servlet Context中,定义⼀个Bean实例
● 场景:Web应⽤的上下⽂信息,⽐如:记录⼀个应⽤的共享信息
● 备注:限定SpringMVC中使⽤

七,websocket( HTTP WebSocket 作用域)

● 官⽅说明:Scopes a single bean definition to the lifecycle of a WebSocket. Only valid in the context of a web-aware Spring ApplicationContext.
● 描述:在⼀个HTTP WebSocket的⽣命周期中,定义⼀个Bean实例
● 场景:WebSocket的每次会话中,保存了⼀个Map结构的头信息,将⽤来包裹客户端消息
头。第⼀次初始化后,直到WebSocket结束都是同⼀个Bean。
● 备注:限定Spring WebSocket中使⽤

以上就是Bean的六种作用域的作用以及应用场景,希望对你有帮助!
记得关注小猪哦!
下期再见啦~
请添加图片描述


http://chatgpt.dhexx.cn/article/F3F6ck3B.shtml

相关文章

Bean的六种作用域

什么是Bean的作用域呢? 这里的"作用域"还和Java中的类级,方法级等这几个作用域概念不太一样,我自己的一个理解是:在Spring执行的这段时间中,Bean的作用域就只有单例和多例这两种,在执行respect这段时间之中,就有它自己的作用域,而到了session中又有它自己的作用域,…

Spring Bean的作用域

在Spring中,bean作用域用于确定哪种类型的bean实例应该从Spring容器中返回给调用者。 目前Spring Bean的作用域或者说范围主要有五种。 作用域描述singleton在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的默认值…

设计原则-依赖倒置

名称:依赖倒置原则(Dependence Inversion Principle) 定义:程序要依赖于抽象接口,不要依赖于具体实现。依赖倒置原则的中心思想是面向接口编程。 高层模块不应依赖于低层模块,二者都应该依赖于抽象抽象不…

C++之依赖倒置原则

C之依赖倒置原则 1. 依赖于具体抽象(接口),不依赖于具体的实现,也就是针对接口编程。 2. 实现高层业务和实现层、实现层和实现层之间的解耦合; 实例: 电脑框架和电脑内部的配件产品(或提供配…

【软件架构设计原则】开闭原则和依赖倒置原则

文章目录 软件架构设计原则开闭原则依赖倒置原则最后 软件架构设计原则 本文通过实例来讲解 开闭原则依赖导致原则 开闭原则 开闭原则(Open-Close Principle,OCP)是指一个软件实体(如类、模块和函数)应该对扩展开放…

java 依赖倒置_Java设计原则—依赖倒置原则(转)

依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象; 抽象不应该依赖细节; 细节应该依赖抽象。 依赖倒置原则在Java语言中的表现是: 模块间的…

设计模式 依赖倒置原则

文章目录 依赖倒置原则依赖倒置原则实战使用依赖倒置原则进行改变案例中两种方式的类图 依赖倒置原则 定义: 程序要依赖于抽象接口, 不要依赖于具体实现, 对抽象进行编程, 而不是对实现进行编程, 降低了客户与实现模块的耦合. 高层模块不应该依赖底层模块, 都应该依赖抽象(接口…

依赖倒置原则应用-司机开车案例

依赖倒置原则 依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。 依赖倒置原则三层含义: …

4.3 依赖倒置原则

一. 依赖倒置原则的定义 1.核心思想 依赖倒置原则(Dependence Inversion Principle,DIP) *1.高层模块 不应该依赖 低层模块, 二者都应该依赖其抽象; *2.抽象 不应该依赖 细节, 细节 应该依赖 抽象; 接口和抽象类价值在于设计; *3.依赖倒…

C# 依赖倒置原则(DIP)

目录 一,引子 1.1 传统的程序架构 1.2 依赖倒置 1.3 依赖倒置的作用 二,依赖注入 一,引子 1.1 传统的程序架构 在程序执行过程中,传统的程序架构如图: 可以看到,在传统的三层架构中,层与…

设计模式-依赖倒置原则

依赖倒置原则 1 依赖倒置原则的定义 依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是: High level modules shou…

C++ 依赖倒置原则

.依赖倒置原则 定义 高层模块不应该依赖于底层模块,而应该依赖于抽象。抽象不应依赖于细节,细节应依赖于抽象。解决的问题 类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般…

【设计原则】依赖倒置原则 (面向接口编程)

本文将以Java为基础,讲解开发中,面向接口编程的知识,只要以简单的例子为主,讲解如何进行面向接口编程,并会区分其于面向实现编程的区别。下面先讲一讲依赖倒置原则,再过渡到案例解释。 本文目的在于用极其简单的图解帮…

设计模式 — 6大设计原则(依赖倒置和接口隔离原则)

设计模式 依赖倒置原则示例 一示例 二依赖的三种写法总结 接口隔离原则实例 一总结 依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖” 还 “倒置” ,这到底是什么意思&a…

【六大设计原则-SOLID】

SOLID简介: 历史:由Robert CMartin汇总并推广 目标: 使软件更容易被改动是软件更容易被理解构建可以在多个软件系统中复用的组件 组成: 名称简写含义单一职责原则 SRP Single Responsibility Principle 初始定义&#xff08…

SOLID原则:解释和实例

在面向对象编程中,SOLID是5个重要的设计原则的缩写。首先是由著名的软件大师Robert C.Martin (Bob 大叔)在Design Principles and Design Patterns 中提出, 后来Michael Feathers 用SOLID来概括这五大原则。 SOLID原则使得软件设计更加容易理解、灵活和可维护。作为一名软件…

SOLID原则的含义和具体使用

单一职责原则(SRP)开放封闭原则(OCP)里氏替换原则(LSP)接口隔离原则(ISP)依赖倒置原则(DIP)小结 SOLID 是面向对象设计5大重要原则的首字母缩写,当…

设计模式:SOLID原则

单一职责原则 Single Responsibility Principle(SRP) 接口职责应该单一,不要承担过多的职责。 开放封闭原则 Open Closed Principle(OCP) 添加一个新的功能应该是,在已有代码基础上扩展代码(…

设计模式之SOLID原则

介绍 设计模式中的SOLID原则,分别是单一原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。前辈们总结出来的,遵循五大原则可以使程序解决紧耦合,更加健壮。 SRP 单一责任原则 OCP …

SOLID 原则要这么理解!

什么是 SOLID 原则 SOLID 原则其实是用来指导软件设计的,它一共分为五条设计原则,分别是: 单一职责原则(SRP)开闭原则(OCP)里氏替换原则(LSP)接口隔离原则(…