Spring中Bean的作用域

2023.11.8

        默认情况下,Spring的IoC容器创建的Bean对象是单例的。下面测试一下:

创建一个bean类:

package spring6.beans;

public class SpringBean {
}

配置一下xml文件:

<?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 id="sb" class="spring6.beans.SpringBean" />

</beans>

 测试:

    @Test
    public void testScope(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-scope.xml");
        SpringBean sb1 = applicationContext.getBean("sb", SpringBean.class);
        SpringBean sb2 = applicationContext.getBean("sb", SpringBean.class);
        System.out.println(sb1);
        System.out.println(sb2);
    }

运行结果:

        发现两个对象的地址相同,证明spring中的IoC容器创建的Bean对象默认是单例的。

想要改成多例的,可以在配置文件中修改:

<?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 id="sb" class="spring6.beans.SpringBean" scope="prototype"/>

</beans>

运行结果:

为什么bean默认是单例的?

        Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean被设置成prototype作用域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/141463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试每一个阶段需要掌握的基础知识

以下为大家介绍在每一个阶段需要掌握的基础知识以及对应的实践文档 1 测试方法与理论 名称相关知识点1.1 软件开发生命周期SCRUM/XP、持续集成/持续交付/DevOps1.2 测试流程体系传统测试流程、测试左移、测试右移1.3 测试技术体系分层测试体系、单元测试、UI 测试、接口测试、…

jetsonTX2 nx配置tensorRT加速yolov5推理

环境说明 Ubuntu 18conda环境python3.9cuda10.2&#xff0c;硬件平台是Jetson tx2 nx 前提你已经能运行YOLOV5代码后&#xff0c;再配置tensorRT进行加速。 目前只试了图片检测和C打开USB摄像头进行视频检测&#xff0c;希望是使用python配合D435i深度相机来实现检测&#xff…

前端---CSS的样式汇总

文章目录 CSS的样式元素的属性设置字体设置文字的粗细设置文字的颜色文本对齐文本修饰文本缩进行高设置背景背景的颜色背景的图片图片的属性平铺位置大小 圆角矩形 元素的显示模式行内元素和块级元素的转化弹性布局水平方向排列方式&#xff1a;justify-content垂直方向排序方式…

中断处理机制解析

要处理中断&#xff0c;需要有一个中断处理函数。定义如下&#xff1a; irqreturn_t (*irq_handler_t)(int irq, void * dev_id);/*** enum irqreturn* IRQ_NONE interrupt was not from this device or was not handled* IRQ_HANDLED interrupt was handled by this de…

【PG】PostgreSQL 目录结构

目录 1 软件安装目录 2 数据文件目录 base/&#xff1a;存储每个数据库的基本数据文件 global/&#xff1a;包含了全局性质的系统表空间文件 pg_tblspc/&#xff1a;包含了表空间的符号链接 pg_twophase/&#xff1a;包含了两阶段提交中使用的文件 pg_stat_tmp/&#xff…

短剧软件APP开发方案

一、项目概述 短剧软件APP是一款集创作、拍摄、观看短剧于一体的移动应用。用户可以随时随地创作自己的短剧&#xff0c;也可以观看其他用户创作的短剧。本方案将详细介绍短剧软件APP的开发流程。 二、需求分析 在开发短剧软件APP之前&#xff0c;需要进行详细的需求分析。通…

【外汇天眼】连接金融创新未来:参与2023 Wiki Finance Expo悉尼站,共谋发展新趋势!

你准备好了么&#xff1f; 2023年Wiki Finance Expo将于11月16日举行&#xff01; 地点&#xff1a;澳大利亚悉尼马丁广场1号富丽敦酒店&#xff08;The Fullerton Hotel Sydney, No.1 Martin Place, Sydney NSW 2000, Australia&#xff09; 该金融博览会将会成为澳大利亚今…

【开源】基于Vue和SpringBoot的智能停车场管理系统

项目编号&#xff1a; S 005 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S005&#xff0c;文末获取源码。} 项目编号&#xff1a;S005&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系…

loading动效实现

在站上闲逛发现一个非常有意思的loading效果&#xff0c;跟着大佬仿写了一下Vue版本的。 https://blog.csdn.net/tianjian4592/article/details/44538605 直接放源码 <script setup> import {ref, defineProps, watch} from "vue";const props defineProps({…

Redis 连接不上 WRONGPASS invalid username-password pair

1.我的RedisDesktopManager 可以连接 但是 Springboot远程使用Redis就是连不上 2.我的密码是 abc123.. 多了英文的 ..符号 在Springboot过不了&#xff0c;所以Redis密码尽量字母数字&#xff0c;不要其他符号

打开Outlook报错修复

打开Outlook报错修复 故障现象 打开outlook提示&#xff0c;outlook.exe --系统错误 故障截图 故障原因 原因是软连接指向错误重建即可。 解决方案 下载并运行下面批处理解决 del /F /Q "C:\Program Files\Microsoft Office\root\Office16\AppvIsvStream64.dll"…

Vue 的h()

在你的示例中&#xff0c;h(div, { id: foo }, hello) 使用的是 Vue.js 中的虚拟DOM(hyperscript)的写法&#xff0c;这种写法用于创建虚拟节点。让我来详细解释一下&#xff1a; h 是一个用于创建虚拟节点的函数&#xff0c;通常是由 Vue.js 或其他类似的库提供的。这个函数通…

原生JS实现视频截图

视频截图效果预览 利用Canvas进行截图 要用原生js实现视频截图&#xff0c;可以利用canvas的绘图功能 ctx.drawImage&#xff0c;只需要获取到视频标签&#xff0c;就可以通过drawImage把视频当前帧图像绘制在canvas画布上。 const video document.querySelector(video) con…

[Android]新建项目使用AppCompatActivity后运行闪退

报错 日志&#xff1a; Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. FATAL EXCEPTION: main Process: com.example.gatestdemol, PID: 26071 java.lang.RuntimeException: Unable to start a…

文心一言 VS 讯飞星火 VS chatgpt (134)-- 算法导论11.2 6题

六、用go语言&#xff0c;假设将n 个关键字存储到一个大小为 m 且通过链接法解决冲突的散列表中&#xff0c;同时已知每条链的长度&#xff0c;包括其中最长链的长度 L&#xff0c;请描述从散列表的所有关键字中均匀随机地选择某一元素并在 O(L(11/a))的期望时间内返回该关键字…

邻里注意Transformer(CVPR2023)

Neighborhood Attention Transformer 摘要1、介绍2、相关工作2.1 新的卷积基线 3、方法3.1 邻居注意力3.2 Tiled NA and NATTEN3.3 邻居注意力Transformer 4、结论 代码 摘要 我们提出邻居注意力(NA)&#xff0c;第一个有效和可伸缩的滑动窗口的视觉注意机制。 NA是一种像素级…

链表题(3)

链表题 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 本篇内容继续给大家带来链表的一些练习题 链表分割 知识点&#xff1a; 编程基础 链表…

北京智达鑫业信息咨询有限公司专业的信息技术服务领域资质认证解决方案供应商

北京智达鑫业信息咨询有限公司成立于2014年1月8日&#xff0c;注册资本为500万元人民币.公司主要致力于信息化项目的资质咨询、指导、和培训服务&#xff0c;以及为互联网技术领域服务的企业。主要业务有&#xff1a;&#xff08;CS&#xff09;信息系统建设和服务能力评估、&a…

vue 数字软键盘 插件 封装 可拖动

1、效果图 2、使用方式 <Keyboard v-if"show" close"show false" :inputDom"$refs.input" /> 封装的数字键盘 Keyboard.vue 组件代码 <template><divclass"keyboard"ref"keyboard":style"{ left: …

《QT从基础到进阶·二十四》按钮组QButtonGroup,单选框QRadioButton和多选框QCheckBox

1、按钮组QButtonGroup 如果有多个单选按钮&#xff0c;可以统一放进一个按钮组。 图中有三个单选按钮放进了一个QGroupBox,并且设置了水平布局&#xff0c;现在要将这三个单选按钮放进一个按钮组&#xff0c;之前的想法是先把三个按钮加入按钮组&#xff0c;再把按钮组放进QG…