Spring中的Bean的作用域、加载策略

1.Spring上下文创建bean对象

  1)通过Spring上下文创建出来的bean对象都是单例的,无论我们获取多少次,获取到的都是同一个bean对象。
  2)无论我们是否主动去获取bean对象,Spring上下文一加载就会创建bean对象。

在这里插入图片描述
2. bean的作用域

  1)单例(singleton):在整个应用程序中,只创建bean的一个实例。
  2)原型(prototype):每次注入或通过Spring上下文获取的时候,都会创建一个新的bean实例。
  3)会话(session):在web应用中,为每个会话创建一个bean实例。
  4)请求(request):在web应用中,为每个请求创建一个bean实例。

作用域为prototype时的情况:
在这里插入图片描述
3. 自动装配中定义的bean的作用域

@Component
//@Scope("prototype")
//@Scope(scopeName = "prototype")  scope的name形式
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)   //常量的形式
public class CompactDis2 {

    public CompactDis2() {
        System.out.println("CompactDis2的无参构造方法……"+this.toString());
    }
}

4. javaConfig装配中定义bean的作用域
在这里插入图片描述
5. Spring中bean对象的加载策略

1)xml配置文件方式
  在Spring配置文件中,默认的加载策略是“积极加载”(bean对象的lazy-init=“false”)。当lazy-init="true"时,按需加载(延迟加载/懒加载)。

<bean id="compactDis" class="com.zm.demo.soundsystem.CompactDis" scope="singleton" lazy-init="true"></bean>

2)注解方式的加载策略的设置
  在类上写@Lazy,表示采用延迟加载策略,不写,默认为“积极加载”。

在这里插入图片描述
注意:延迟加载策略只与作用域为singleton的有效。

3)javaConfig发过誓的加载策略设置
在这里插入图片描述
6. 对象的初始化和销毁

1)在spring的xml配置文件中配置初始化和销毁方法的方式

<bean destory-method="销毁方法的方法名" init-method="初始化方法的方法名"></bean>

在这里插入图片描述
2)自动装配中初始化方法和销毁方法的配置

 在初始化方法上添加 @PostConstruct 标签,在销毁方法上添加 @PostConstruct 标签。
在这里插入图片描述
3)javaConfig方式装配初始化方法和销毁方法

 在初始化方法上添加 @PostConstruct 标签,在销毁方法上添加 @PostConstruct 标签。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值