Bean作用域和生命周期

6 篇文章 0 订阅
本文探讨了Spring框架中Bean的作用域,包括默认的单例模式和其它五种不同作用域。Bean的生命周期涉及实例化、属性设置、初始化及销毁等阶段。通过@Scope注解可以设置Bean的作用域,以控制对象的创建和管理。Spring的主要执行流程包括启动容器、Bean初始化、注入和使用,以及对象的销毁。
摘要由CSDN通过智能技术生成

目录

Bean作用域的例子

作用域定义

Bean的六种作用域

设置作用域

 Spring的执行过程和Bean的生命周期

Spring的主要执行流程

 Bean的生命周期


在上篇博客中我们使用Spring存储和获取Bean,因此Bean是Spring中最重要的资源,今天这篇博客就深入了解Bean对象

Bean作用域的例子

 在上面的代码片段中我们可以看到并没修改dog对象却对后面注入对象造成了影响,这是什么原因呢,

 原因就是Bean默认是单例的,也就是所有人的使用的都是同一个Bean对象

作用域定义

我们在之前的学习中认为作用域就是变量在程序中的可用范围,而在Bean作用域则是指Bean对象在整个Spring中的某种行为模式,比如单例模式表示在Spring(框架)中只有一份,默认是单例模式

Bean的六种作用域

1.singleton:单例作用域(默认作用域) 只有一个全局对象

2.prototype:原型作用域(多例) 每次访问创建新对象

3.request:请求作用域(适用MVC) 每次HTTP请求创建一个对象

4.session:会话作用域 (适用MVC) 每次会话使用一个Bean对象

5.application:全局作用域(适用MVC) 一个http servlet context中共享一个对象

6.websocket:HTTP WebSocket作用域(适用WebSocket中)

设置作用域

我们可以使用@Scope标签声明Bean作用域,设置Bean的作用域,注解使用方式有两种

@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)//使用枚举设置
@Scope("prototype")//直接设置

可以看到我们添加了这一个注解就可以解决上诉问题了

 Spring的执行过程和Bean的生命周期

Spring的主要执行流程

1.启动容器

 2.Bean初始化

 配置文件中的Bean,配置了加载组件路径下的类进行扫描(看是否添加类注解)

 3.将Bean对象注入到Spring中

 4.使用Bean

 Bean的生命周期

一个对象从诞生到销毁的过程我们称为一个对象的生命周期

Bean的生命周期分为五个部分

1)实例化Bean(分配内存空间)

2)设置属性(依赖注入 DI)

3)Bean初始化

        ①执行各种通知

        ②初始化的前置方法(xml中定义 init-method 或者 @postConstruct)

        ③初始化方法

        ④初始化的后置方法

4)使用Bean

5)销毁Bean (xml destroy-method 或者 @PreDestroy)

 注意事项

先设置属性在初始化的原因是初始化过程中有很多的方法,方法有可能调用属性中某个对象的方法,如果先初始化在实例化的话就会造成空指针异常                         

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值