当前位置: 首页 > 网络应用技术

一篇文章带您了解详细的解释

时间:2023-03-09 11:19:36 网络应用技术

  大概每个人都在项目中使用了此注释,因为它将在应用程序启动时执行该注释标记的方法。实际上,它还具有另一个注释。在Bean被摧毁之前,它确实被执行。它们是豆类生命周期的所有部分。那么他们实施什么阶段?我们将从源代码的角度进行分析。

  他是规格中定义的两个类。它表示豆初始化和破坏之前指定的注释,该注释位于包装下,而不是弹簧罐中的类。

  JSR-2050的缩写,Java规范请求意味着Java规范提案。它是Java行业提出的重要标准。它定义了一组常见的注释,例如@postContruct, @resource等,以防止不同的J2EE组件等不同的J2EE组件例如Spring,Jboss,WebSphere等。每个都可以完成一组注释。

  春季作为NB框架,也遵循上述规格,并意识到对JSR注释的支持。

  豆初始化和破坏的方法定义了,包括接口的实现,bean配置,属性和添加注释。

  代码地址:github.com/alvinlkk/sp

  根据执行结果,豆的初始化和破坏的顺序:

  通过调试快速跟踪真正的豆的初始化阶段。

  在Bean的初始化过程之前,回调方法是弹簧的扩展点,我们通过这种扩展机制实现了我们。相应的类是。

  顾名思义,它是用于处理初始化和破坏注释的Bean处理器。我们查看其方法。

  该方法的关键是上面的两个步骤。第一步是找到所有注释的方法,第二步是执行相应的方法,第二步更简单,即调用反射操作。我们专注于第一种方法。

  关键方法的源代码如下:

  该方法主要遍历与Bean相对应的类,以及在父级中包含和注释的注释方法

  目的。

  有一个问题,寻找其实用性的属性,然后将其设置在它上?

  我们可以查看父类的结构,该结构是立即设置的。

  那么,该Bean处理器什么时候加载到容器中?只有将其加载到容器中后,才能执行相应的方法。

  您可以阅读本文,以了解BeanPostProcessor Springboot扩展点的详细过程 - 一篇文章Master the BeanPostProcessor family

  何时将此豆的定义添加到BeanDefinition工厂中?

  只有当BeanDefinition工厂在工厂中,才会创建BEAN。答案才在方法中。

  实际上,在BEAN初始化过程时,Bean初始化可以自定义扩展点,并且您可以根据实际需求进行扩展。

  https://securitit.blog.csdn.net/article/details/111353318

  https://blog.csdn.net/securitit/article/details/111353676

  https://www.cnblogs.com/lay2017/p/11735802.html

  原始:https://juejin.cn/post/7111258070352658446