Beans模块之工厂模块注解模块InitDestroyAnnotationBeanPostProcessor
博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌
博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦
🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用微信支付,扫码加群。由于维护成本问题得不到解决,可能将停止线上维护。
🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟
Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》https://blog.csdn.net/qq_57756904/category_12173599.html
有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。
最后再送一句:最好是学会了,而不是学废了!!
2
InitDestroyAnnotationBeanPostProcessor 是 Spring Framework 中的一个后置处理器(BeanPostProcessor),用于处理初始化和销毁方法上的注解。它可以自动检测并执行带有 @PostConstruct 和 @PreDestroy 注解的方法,这些方法用于在 bean 的生命周期中进行初始化和销毁操作。
以下是 InitDestroyAnnotationBeanPostProcessor 的主要功能和用途:
- 处理 @PostConstruct 注解:该后置处理器会扫描所有的 bean 定义,检测到带有 @PostConstruct 注解的方法,然后在 bean 初始化之后(在构造函数执行之后,属性注入之后)自动调用这些方法。@PostConstruct 注解通常用于执行初始化操作,如资源的初始化或配置的加载。
- 处理 @PreDestroy 注解:同样,该后置处理器也会扫描所有的 bean 定义,检测到带有 @PreDestroy 注解的方法,然后在 bean 销毁之前(在容器关闭之前)自动调用这些方法。@PreDestroy 注解通常用于执行资源的释放或清理操作。
- 支持 JSR-250 标准:InitDestroyAnnotationBeanPostProcessor 不仅支持 Spring 特定的 @PostConstruct 和 @PreDestroy 注解,还支持 JSR-250 标准的 @javax.annotation.PostConstruct 和 @javax.annotation.PreDestroy 注解,以便与标准的 Java EE 注解兼容。
- 自定义销毁方法名:如果 bean 上没有定义 @PreDestroy 注解,你可以通过在 XML 配置文件中设置 destroy-method 属性来指定销毁方法的名称。
通常情况下,你无需手动配置 InitDestroyAnnotationBeanPostProcessor,因为它会自动注册到 Spring 容器中。只要在 Spring 配置文件中启用了组件扫描或者将 bean 定义纳入到 Spring 容器中,InitDestroyAnnotationBeanPostProcessor 就会自动检测并处理带有 @PostConstruct 和 @PreDestroy 注解的方法。
示例使用 @PostConstruct 和 @PreDestroy 注解的 bean 类:
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
public class MyBean {
@PostConstruct
public void init() {
// 初始化操作
}
@PreDestroy
public void cleanup() {
// 清理操作
}
}
在上面的示例中,MyBean 类使用了 @PostConstruct 注解来定义初始化方法和 @PreDestroy 注解来定义销毁方法。当这个类的实例被 Spring 容器管理时,InitDestroyAnnotationBeanPostProcessor 将自动识别并执行这些方法,实现了初始化和销毁的自动管理。