Spring单例、原型、懒加载策略

不是吧!阿sir,Spring你只知道单例创建Bean嘛?

1、Spring的Bean简单说明

Spring的Bean大白话讲就是Spring帮你创建了对象,然后交给Spring容器进行管理。默认的情况下,Spring是在初始化的时候就已经帮你创建了Bean,而且全局只有一个对象即单例;
Spring单例、原型、懒加载策略

单例SCOPE_SINGLETON:全局只有一个Bean

原型SCOPE_PROTOTYPE:每一次获取都是重新创建

SCOPE_REQUEST:一个REQUEST创建一次

SCOPE_SESSION:一个SESSION内创建一个

2、简单演示一下单例与原型

工程结构(Student类不用关注)

Spring单例、原型、懒加载策略

Person类

Spring单例、原型、懒加载策略

配置类

Spring单例、原型、懒加载策略

启动器

Spring单例、原型、懒加载策略

这里是演示原型方法先,因为我在Person当中声明了构造方法

所以创建Bean的时候,肯定会执行构造方法内部的打印语句
运行一下

Spring单例、原型、懒加载策略

可以看到构造方法调用了两次,表明已经创建了两次

加入 = =比较两个对象肆肆

Spring单例、原型、懒加载策略Spring单例、原型、懒加载策略

改为单例试试吧,嘿嘿

Spring单例、原型、懒加载策略

再次执行一下吧

Spring单例、原型、懒加载策略

3、配置为懒加载

懒加载就是如果不进行获取的时候,Bean并不会被创建

(你是否注意到我先前在main方法当中进行getBean了呢?)

其实如果我没有getBean的话,构造方法也是会被执行的

自己尝试了哟

那么怎么配置懒加载呢?

Spring单例、原型、懒加载策略
Spring单例、原型、懒加载策略

执行main方法的时候会发现,不会打印

Spring单例、原型、懒加载策略

懒加载就是只有你要用的时候,Bean才会被创建

原型或者是单例都可以配置懒加载策略