图不能少
InstantiationAwareBeanPostProcessor的postProcessProperties和postProcessPropertyValues
这个就是我们所说的自动装配啦,内部的CommonAnnotationBeanPostProcessor
和AutowiredAnnotationBeanPostProcessor
处理器对注入的处理。
postProcessPropertyValues
已经过期了。
其实处理都差不多的。所以我们也可以在这里进行自己的扩展,对象都拿到了,还有啥干不了么是吧,具体就不演示了。
initializeBean的invokeAwareMethods注入完成开始初始化了
主要是设置一些属性,这里有个比较重要的就是BeanFactoryAware
,可以获得BeanFactory
。
比如我们自己实现一个也可以拿到这些信息,因为比较简单看下就好了:
applyBeanPostProcessorsBeforeInitialization初始化之前
如果返回null
的话就直接返回了,也就是不继续做处理了,所以这里其实可以组织其他处理器来处理,自定义处理器直接返回null
,就返回了。
其实也就是对bean
的一些操作,没什么特殊的。
invokeInitMethods执行初始化方法
主要还是执行实现了InitializingBean
接口的afterPropertiesSet
方法:
invokeCustomInitMethod自定义的一些方法
也就是bean
定义里设置了initMethodName
:
实战
随便定义个类写个方法:
public class PoJo {
public void init(){
System.out.println("自定义initMethodName");
}
}
测试代码
就是注册一个bean定义,然后设置InitMethodName
。
@Test
public void invokeCustomInitMethodTest() throws Exception {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register(MyConfig.class);
AnnotatedBeanDefinition annotatedBeanDefinition=new AnnotatedGenericBeanDefinition(PoJo.class);
annotatedBeanDefinition.setInitMethodName("init");
applicationContext.registerBeanDefinition("myBean",annotatedBeanDefinition);
applicationContext.refresh();
}
applyBeanPostProcessorsAfterInitialization初始化之后
和初始化之前处理类似,就不多说了。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。
Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。
它的内容包括:
- 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
- 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
- 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
- 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
- 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
- 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
- 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
- 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw
目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:
想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询
同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。