<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 64,  comments - 9,  trackbacks - 0

    在Spring中,從BeanFactory或ApplicationContext取得的實例為Singleton,也就是預設為每個Bean的別名只維持一個實例。因此會存在資源共享的問題。如需要,則可以將其設置為”singleton=false”。

    在這里要注意的是此singleton的設置只是針對單一的配置文件而言,也就是說,如果存在多個BeanFactory或ApplicationContext,即使將singleton設置為false,也會存在資源共享的問題。

    下面來說下Bean的生命周期:

    l        Bean的建立

    有BeanFactory讀取Bean定義文件,并生成各個Bean實例

    l        屬性注入

    執行相關的Bean屬性依賴注入

    l        BeanNameAware的setBeanName()

    如果Bean類有實現BeanNameAware接口,則執行他的setBeanName()方法。

    l        BeanFactoryAware的setBeanFactory()

    如果Bean類有實現BeanFactoryAware接口,則執行他的setBeanFactory()方法

    l        BeanPostProcessors的processBeforeInitialization()

    如果任何的BeanPostProcessors實例與Bean實例關聯,則執行BeanPostProcessors實例的processBeforeInitialization()方法

    l        initializingBean的afterPropertiesSet()

    l        如果Bean類已實現了org.springframework.beans.factory.InitializingBean接口,則執行它的afterPropertiesSet()方法。

    l        Bean定義問教案中定義的init-method

    可以在Bean定義文件中使用”init-method”屬性設定方法名稱,進入這個階段,就會執行initBean()方法。

    l        BeanPostProcessors的processAfterInitialization()

    如果任何的BeanPostProcessors實例與Bean實例關聯,則執行BeanPostProcessors實例的processAfterInitialization()方法

    l        DisposableBean的destroy()

    在容器關閉時,如果Bean類有實現org.springframework.beans.factory.

    DisposabelBean接口,則執行它的destroy()方法

    l        Bean定義文件中定義的destroy-method

    可以在Bean定義文件中使用” destroy-method”屬性設定方法名稱,進入這個階段,就會執行destroyBean()方法。

    以上是BeanFactory管理Bean的方法,如果采用ApplicationContext管理,則會稍有不同。使用ApplicationContext來生成和管理Bean實例的話,在執行BeanFactoryAware的SetBeanFactory()階段之后,若Bean類上有實現ApplicationContextAware接口,則執行其setApplicationContext()方法,接著才繼續進行BeanPostProcessors的processBeforeInitialization()及之后的流程。

    下面就給出一簡單demo,以供參考:

    public class CommonBean implements BeanNameAware, BeanFactoryAware,

           ApplicationContextAware, BeanPostProcessor {

        public void setBeanName(String name) {

           System.out.println("This is setBeanName method!");

        }

        public void setBeanFactory(BeanFactory beanFactory) throws BeansException {

           System.out.println("This is setBeanFactory method!");

        }

        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

           System.out.println("This is setApplicationContext method!");

        }

        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {

           System.out.println("This is postProcessAfterInitialization method!");

           return bean;

        }

        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {

           System.out.println("This is postProcessBeforeInitialization method!");

           return bean;

        }

        public void initBean(){

           System.out.println("This is initBean method!");

        }

        public void destroyBean(){

           System.out.println("This is destroyBean method!");

        }

    }

    在context.getBean(“commonBean”)執行時,輸出結果:

    This is setBeanName method!

    This is setBeanFactory method!

    This is setApplicationContext method!

    This is initBean method!

    This is postProcessBeforeInitialization method!

    This is postProcessAfterInitialization method!

     

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/prince2270/archive/2008/09/27/2986231.aspx

    posted on 2009-08-26 14:28 super_nini 閱讀(222) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2009年8月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 色多多www视频在线观看免费| 久久精品国产亚洲AV| 最新欧洲大片免费在线| 亚洲va中文字幕| 最新精品亚洲成a人在线观看| 久久亚洲免费视频| 中国亚洲呦女专区| 国产亚洲大尺度无码无码专线 | 99久久精品免费精品国产| 亚洲 欧洲 视频 伦小说| 亚洲国产精品无码久久九九| 特级无码毛片免费视频尤物 | 久久狠狠爱亚洲综合影院| 亚洲国产高清精品线久久| 亚洲美女免费视频| 亚洲av永久无码精品三区在线4| 国产在线观看免费完整版中文版 | 亚洲日本成本人观看| 亚洲日韩精品A∨片无码| 69成人免费视频无码专区| 热久久这里是精品6免费观看| 亚洲一卡2卡三卡4卡无卡下载 | 亚洲一区二区久久| 亚洲精品乱码久久久久久自慰| 无码国产精品久久一区免费| 免费无码又爽又刺激网站| 伊人久久综在合线亚洲91| 成人免费看片又大又黄| 亚洲综合无码一区二区痴汉| 国产精品亚洲аv无码播放| 国产精品黄页在线播放免费| 2015日韩永久免费视频播放| caoporm碰最新免费公开视频| 亚洲熟妇成人精品一区| 国产成人精品日本亚洲专区61 | 国产一级一片免费播放| 一本久久免费视频| 亚洲色成人四虎在线观看 | 一级做a爰片久久毛片免费陪 | 国产精品亚洲玖玖玖在线观看| 一级白嫩美女毛片免费|