Bean生命周期 五步/七步

Spring 中的对象是 bean,由 IoC 容器去帮助我们实例化对象并且管理它,我们需要哪个对象,去问 IoC 容器要即可。

IoC 其实就是解决对象之间的耦合问题,Spring Bean 的生命周期完全由容器控制。
 

  • singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
  • prototype : 每次请求都会创建一个新的 bean 实例。
  • request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
  • session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
  • global-session: 全局 session 作用域,仅仅在基于 Portlet 的 web 应用中才有意义,Spring5 已经没有了。

Portlet 是能够生成语义代码(例如:HTML)片段的小型 Java Web 插件。它们基于 portlet 容器,可以像 servlet 一样处理 HTTP 请求。但是,与 servlet 不同,每个 portlet 都有不同的会话。
我们知道对于普通的 Java 对象来说,它们的生命周期就是:

实例化
该对象不再被使用时通过垃圾回收机制进行回收
而对于 Spring Bean 的生命周期来说:

  • 实例化 Instantiation
  • 属性赋值 Populate
  • 初始化 Initialization
  • 销毁 Destruction

实例化 -> 属性赋值 -> 初始化 -> 销毁
———————————————
原文链接:https://blog.csdn.net/riemann_/article/details/118500805

 

 

 

 

下是七步生命周期 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bean的生命周期通常包括以下11个步骤: 1. 创建Bean实例:当容器启动时,根据配置信息或注解,实例化Bean对象。 2. 设置Bean的属性:将配置文件中或通过注解指定的属性值注入到Bean实例中。 3. 调用Bean的自定义初始化方法:如果Bean类中定义了自定义的初始化方法(如使用 `@PostConstruct` 注解),在依赖注入完成后,容器将调用该方法进行自定义的初始化操作。 4. Bean后置处理器的前置处理:如果容器中注册了Bean后置处理器(BeanPostProcessor),在初始化之前,将调用其前置处理方法。 5. 调用Bean的初始化方法:如果Bean类实现了 `InitializingBean` 接口,容器将在依赖注入和自定义初始化方法之后,调用其 `afterPropertiesSet()` 方法进行进一步的初始化操作。 6. Bean后置处理器的后置处理:如果容器中注册了Bean后置处理器(BeanPostProcessor),在初始化之后,将调用其后置处理方法。 7. 使用Bean:此时Bean实例已经完全初始化,可以在其他组件中使用它。 8. 销毁前处理:如果Bean类实现了 `DisposableBean` 接口,在容器关闭时,会调用其 `destroy()` 方法进行销毁前的处理。 9. Bean后置处理器的销毁前处理:如果容器中注册了Bean后置处理器(BeanPostProcessor),在销毁之前,将调用其销毁前处理方法。 10. 销毁Bean:在容器关闭时,会销毁Bean实例。 11. Bean后置处理器的销毁后处理:如果容器中注册了Bean后置处理器(BeanPostProcessor),在销毁之后,将调用其销毁后处理方法。 这些步骤构成了Bean的完整生命周期,可以在其中的不同阶段进行相应的操作和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值