Bean对象的作用域与生命周期

本文详细介绍了Spring框架中Bean对象的两种主要作用域——单例和原型,以及懒加载属性的影响。单例作用域的Bean在容器启动时被实例化并缓存,而原型作用域的Bean每次请求都会创建新的实例。懒加载可延迟Bean的实例化,提高程序效率。此外,文章还讨论了哪些类型的对象适合作为单例,并概述了Bean的完整生命周期,包括定义、初始化、使用和销毁四个阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean对象的作用域与生命周期

Bean对象的作用域

  1. 单例作用域(singleton作用域)

    Spring容器在启动时会自动实例化Bean对象,并将对象设置到单例缓存池中,下次获取时直接从缓存池得到

    scope = “singleton” 默认情况下,Spring容器加载的对象都是单例。

  2. 原型作用域

    Spring容器在启动时会实例化Bean对象, 不会将对象设置到单例缓存池中,每次请求都会重新创建一个Bean对象。

    scope = “prototype”

lazy-init属性(懒加载)

如果为false,则在IOC容器启动时会实例化Bean对象,默认为false。

如果为true,则IOC容器启动时不会实例化Bean对象,在使用Bean对象时才会实例化

lazy-init设置为false有什么好处?

  1. 可以提前发现潜在的配置问题
  2. Bean对象存在于缓存中,使用时不用再去实例化Bean,加快程序运行效率

什么对象适合作为单例对象

一般来说对于无状态或状态不可改变的对象适合使用单例模式。(不存在会改变对象状态的成员变量)

比如:controller层 service层 dao层

什么是无状态或状态不可改变的对象?

实际上对象状态的变化往往均是由于属性值的变化引起的,比如User类 姓名属性会有变化,属性姓名的变化一般会引起user对象状态的变化。对于我们的程序来说,无状态对象没有实例对象的存在,保证了线程的安全性,service层业务对象即是无状态对象。线程安全的。

Bean的生命周期

在Spring中,Bean的生命周期包括Bean的定义,初始化,使用,销毁四个阶段。

Spring Bean作用域生命周期是 Spring 框架中非常重要的两个概念,这里简单介绍一下。 1. Bean作用域 在 Spring 中,Bean作用域指的是 Bean 实例的创建和销毁的范围。Spring 提供了以下五种作用域- singleton:单例模式,容器中只有一个 Bean 实例,所有对 Bean 的请求都将返回同一个实例。 - prototype:每次请求都会创建一个新的 Bean 实例。 - request:每个 HTTP 请求都会创建一个新的 Bean 实例。 - session:每个 HTTP Session 都会创建一个新的 Bean 实例。 - global session:基于 Servlet 3.0+ 的环境下,每个全局的 HTTP Session 都会创建一个新的 Bean 实例。 2. Bean生命周期 Bean生命周期指的是 Bean 实例从创建到销毁的整个过程。Spring 提供了以下七个阶段: - 实例化 Bean:Spring 根据 Bean 的定义创建一个 Bean 的实例。 - 设置 Bean 属性:Spring 将配置文件中的属性设置到 Bean 实例中。 - BeanNameAware:如果 Bean 实现了 BeanNameAware 接口,Spring 将 Bean 的 ID 传递给 setBeanName 方法。 - BeanFactoryAware:如果 Bean 实现了 BeanFactoryAware 接口,Spring 将 BeanFactory 实例传递给 setBeanFactory 方法。 - InitializingBean:如果 Bean 实现了 InitializingBean 接口,Spring 将调用 afterPropertiesSet 方法。 - 自定义初始化方法:Bean 可以配置自定义的初始化方法。 - DisposableBean:如果 Bean 实现了 DisposableBean 接口,Spring 将调用 destroy 方法。 - 自定义销毁方法:Bean 可以配置自定义的销毁方法。 以上就是 Spring Bean作用域生命周期的简单介绍。理解 Bean作用域生命周期对于正确使用 Spring 框架非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值