Spring5.x的bean的scope作用域

本文探讨了Spring框架中Bean的两种主要作用域:singleton和prototype。singleton作用域确保每次从容器获取Bean时都返回相同对象,提高了效率;而prototype作用域则会在每次请求时创建新的Bean实例,可能导致性能开销。通过两个测试代码示例,展示了singleton作用域下Bean的引用地址始终相同,而prototype作用域下则不同。
摘要由CSDN通过智能技术生成

scope属性

singleton:单例, 默认值,调用getBean方法返回是同一个对象,实例会被缓存起来,效率比
较⾼高当一个bean被标识为singleton时候,spring的IOC容器中只会存在一个该bean

prototype: 多例,调用getBean方法创建不同的对象,会频繁的创建和销毁对象造成很大的
开销
其他少⽤用(作用域 只在 WebApplicationContext)
request :每个Http请求都会创建一个新的bean
session: 每个Http Session请求都会创建一个新的bean
global session(基本不用)

测试代码1:

在这里插入图片描述

public class App {
    public static void main(String[] args){
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        
       testScope(applicationContext);
    }

    private static void testScope(ApplicationContext applicationContext){
        Video video=(Video) applicationContext.getBean("video");
        Video video2=(Video) applicationContext.getBean("video");
        System.out.println(video==video2);

    }
}

测试结果截图:
比较的引用地址,为true说明是同一个对象。
在这里插入图片描述
测试代码2:
在这里插入图片描述
代码同上
测试解脱截图:
比较的引用地址,为false说明是不是同一个对象。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值