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