<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 閱讀(219) 評論(0)  編輯  收藏

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


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

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产AV无码专区亚洲AV手机麻豆| 久久不见久久见免费影院| JLZZJLZZ亚洲乱熟无码| 久久精品国产亚洲av品善| 国产精品二区三区免费播放心| 亚洲人成色77777在线观看| 免费无码黄动漫在线观看| 亚洲国产av玩弄放荡人妇| 成人国产mv免费视频| 亚洲va中文字幕| 免费成人在线观看| 一级女人18片毛片免费视频| 国产综合精品久久亚洲| 成人性做爰aaa片免费看| 亚洲91av视频| 国产成人精品免费视频动漫 | 成人在线免费观看| 亚洲午夜无码毛片av久久京东热| 在线jlzzjlzz免费播放| 搜日本一区二区三区免费高清视频 | MM1313亚洲精品无码久久| 亚洲国产成人久久一区久久| 丁香花在线观看免费观看图片 | 亚洲日韩精品国产一区二区三区| 国产福利免费观看| 国产免费内射又粗又爽密桃视频| 亚洲Av无码精品色午夜| 四虎免费影院ww4164h| 老司机亚洲精品影院在线观看| 中文字幕亚洲乱码熟女一区二区| 91精品手机国产免费| 亚洲精品中文字幕无码A片老| 亚洲国产日韩成人综合天堂| 久久国产免费观看精品| 亚洲国产美女福利直播秀一区二区| 国产精品免费观看| 中文在线观看国语高清免费| 激情亚洲一区国产精品| 亚洲尤码不卡AV麻豆| 午夜性色一区二区三区免费不卡视频| 色费女人18女人毛片免费视频|