生活随笔
收集整理的這篇文章主要介紹了
一张图看懂Bean的实例化过程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)例化 bean 對象,類似于 new XXObject()將配置文件中配置的屬性填充到剛剛創(chuàng)建的 bean 對象中。檢查 bean 對象是否實(shí)現(xiàn)了 Aware 一類的接口,如果實(shí)現(xiàn)了則把相應(yīng)的依賴設(shè)置到 bean 對象中。比如如果 bean 實(shí)現(xiàn)了 BeanFactoryAware 接口,Spring 容器在實(shí)例化bean的過程中,會(huì)將 BeanFactory 容器注入到 bean 中。調(diào)用 BeanPostProcessor 前置處理方法,即 postProcessBeforeInitialization(Object bean, String beanName)。檢查 bean 對象是否實(shí)現(xiàn)了 InitializingBean 接口,如果實(shí)現(xiàn),則調(diào)用 afterPropertiesSet 方法。或者檢查配置文件中是否配置了 init-method 屬性,如果配置了,則去調(diào)用 init-method 屬性配置的方法。調(diào)用 BeanPostProcessor 后置處理方法,即 postProcessAfterInitialization(Object bean, String beanName)。我們所熟知的 AOP 就是在這里將 Adivce 邏輯織入到 bean 中的。注冊 Destruction 相關(guān)回調(diào)方法。bean 對象處于就緒狀態(tài),可以使用了。應(yīng)用上下文被銷毀,調(diào)用注冊的 Destruction 相關(guān)方法。如果 bean 實(shí)現(xiàn)了 DispostbleBean 接口,Spring 容器會(huì)調(diào)用 destroy 方法。如果在配置文件中配置了 destroy 屬性,Spring 容器則會(huì)調(diào)用 destroy 屬性對應(yīng)的方法。
總結(jié)
以上是生活随笔為你收集整理的一张图看懂Bean的实例化过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。