图不能少
registerDisposableBeanIfNecessary注册销毁回调
这个我前面有讲过了,可以参考下,还有这篇文章。
有N种方法可以扩展注册容器销毁的回调方法,销毁的时候释放资源啊,做一些处理啊。
SmartInitializingSingleton的afterSingletonsInstantiated
这个就是所有的单例实例化的最后会调用,给个通知。
总结
基本上getBean
的扩展点主要是这几个接口:
- InstantiationAwareBeanPostProcessor
- SmartInstantiationAwareBeanPostProcessor
- BeanPostProcessor
- MergedBeanDefinitionPostProcessor
- InitializingBean
- DisposableBean
- Supplier
但是涉及到的范围非常广,从实例化之前,实例化之后,注入之前,注入中,初始化前,初始化中,初始化后,销毁前,基本整个生命周期都包含了。这些方法其实足够让你在各个阶段参数,也可以做到一定的解耦,通过处理器作为和spring的连接,避免跟spring
过耦合。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。