少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          一,單一Bean

          • 裝載

          1. 實例化; 
          2. 設置屬性值; 
          3. 如果實現了BeanNameAware接口,調用setBeanName設置Bean的ID或者Name; 
          4. 如果實現BeanFactoryAware接口,調用setBeanFactory 設置BeanFactory; 
          5. 如果實現ApplicationContextAware,調用setApplicationContext設置ApplicationContext 
          6. 調用BeanPostProcessor的預先初始化方法; 
          7. 調用InitializingBean的afterPropertiesSet()方法; 
          8. 調用定制init-method方法; 
          9. 調用BeanPostProcessor的后初始化方法;

          • spring容器關閉

          1. 調用DisposableBean的destroy(); 
          2. 調用定制的destroy-method方法;

           

          二,多個Bean的先后順序

          • 優先加載BeanPostProcessor的實現Bean
          • 按Bean文件和Bean的定義順序按bean的裝載順序(即使加載多個spring文件時存在id覆蓋)
          • “設置屬性值”(第2步)時,遇到ref,則在“實例化”(第1步)之后先加載ref的id對應的bean
          • AbstractFactoryBean的子類,在第6步之后,會調用createInstance方法,之后會調用getObjectType方法
          • BeanFactoryUtils類也會改變Bean的加載順序
          posted on 2015-03-23 22:10 abin 閱讀(633) 評論(0)  編輯  收藏 所屬分類: spring
          主站蜘蛛池模板: 芦溪县| 五家渠市| 古丈县| 肥东县| 荣成市| 阳高县| 日喀则市| 岱山县| 芦山县| 阿拉善右旗| 伊金霍洛旗| 镇康县| 伊吾县| 洛南县| 根河市| 嘉荫县| 乡宁县| 莲花县| 丰镇市| 鹿泉市| 东丽区| 香格里拉县| 日土县| 嘉兴市| 陇西县| 新乡市| 镶黄旗| 自贡市| 枣强县| 隆回县| 南投县| 鄢陵县| 新绛县| 始兴县| 孟连| 宜章县| 韩城市| 阿克| 邢台市| 和龙市| 永福县|