【Spring】Bean 的作用域

news/2024/5/20 3:24:33 标签: spring, java, 后端, gradle, spring源码

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页


目录

  • 🌟 一、XML 配置
  • 🌟 二、Java 配置
  • 🌟 三、singleton 和 prototype 的区别


🌟 一、XML 配置

默认情况下,我们注册到 Spring 容器中的 Bean 是单例的,多次获取,拿到的是同一个实例

如果是 XML 配置,可以通过如下方式修改 scope 属性:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="com.dong.Cat" id="cat" scope="prototype"/>
</beans>

主要就是修改 scope 属性的值。
scope 属性的取值,一共有六种

取值含义生效条件
singleton表示这个 Bean 是单例的,在 Spring 容器中,只会存在一个实例
prototype多例模式,每次从 Spring 容器中获取 Bean 的时候,才会创建 Bean 的实例出来
request当有一个新的请求到达的时候,会创建一个 Bean 的实例处理web 环境下生效
session当有一个新的会话的时候,会创建一个 Bean 的实例出来web 环境下生效
application这个表示在项目的整个生命周期中,只有一个 Beanweb 环境下生效
gloablsession有点类似于 application,但是这个是在 portlet 环境下使用的

🌟 二、Java 配置

Java 配置可以通过 @Scope 注解去设置作用域

java">public class JavaConfig {
	@Bean
	@Scope("prototype")
	Cat cat(){
		Cat cat = new Cat();
		return cat;
	}
}

🌟 三、singleton 和 prototype 的区别

  • 如果 scope 为 singleton,则 Spring 容器在启动的时候,就会完成 Bean 的初始化;而 prototype 则是在每一次获取 Bean 的时候,Spring 容器才会去初始化 Bean
  • 在具体的项目中使用的时候,要注意 scope 为 prototype 的 Bean 要注意销毁

http://www.niftyadmin.cn/n/5042807.html

相关文章

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言&#xff0c;并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。Docker 可用于开发…

【马蹄集】—— 数论专题:筛法

数论专题 目录 MT2213 质数率MT2214 元素共鸣MT2215 小码哥的喜欢数MT2216 数的自我MT2217 数字游戏 MT2213 质数率 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;256M 题目描述 请求出 [ 1 , n ] \left[1,n\right] [1,n] 范围内质数占比率。…

【问题记录】解决“命令行终端”和“Git Bash”操作本地Git仓库时出现 中文乱码 的问题!

环境 Windows 11 家庭中文版git version 2.41.0.windows.1 问题情况 在使用 “命令行终端” 和 “Git Bash” 在本地Git仓库敲击命令时&#xff0c;对中文名称文件显示一连串的数字&#xff0c;如下所示&#xff1a;这种情况通常是由于字符编码设置不正确所引起的 解决办法 设置…

flex布局与float布局

float布局 俩栏 三栏 flex布局

@DateTimeFormat 和 @JsonFormat 的详细研究

关于这两个时间转化注解&#xff0c;先说结论 一、介绍 1、DateTimeFormat DateTimeFormat 并不会根据得到其属性 pattern 把前端传入的数据转换成自己想要的格式&#xff0c;而是将前端的String类型数据封装到Date类型&#xff1b;其次它的 pattern 属性是用来规范前端传入…

【运维面试100问】(三)说说你在故障排除方面的经历

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

最佳开源DEM全国、省、市、县DEM数据分享

数据简介 哥白尼数字高程模型(Copernicus DEM, COP-DEM)由欧洲航天局发布&#xff0c;被行业公认为是目前最佳开源DEM&#xff0c;分辨率有30米和90米两种&#xff0c;该数据来源于WorldDEM&#xff0c;WorldDEM产品是基于0.4弧秒(对应分辨率10-12米)的TanDEM-X DEM处理后得到…

Git_04_撤销工作区的修改

> git restore 文件路径&#xff0b;文件名称1.查看工作区的变动 2.撤回工作区的修改