0
点赞
收藏
分享

微信扫一扫

Spring5.x的bean的scope作用域

dsysama 2022-04-23 阅读 100
spring

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 条评论