少年阿賓

          那些青春的歲月

            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
          主站蜘蛛池模板: 琼海市| 泽库县| 临泉县| 高青县| 怀宁县| 柏乡县| 泸溪县| 遵义市| 通道| 化隆| 友谊县| 安徽省| 防城港市| 蓬溪县| 德庆县| 绥芬河市| 运城市| 巧家县| 崇州市| 丹东市| 丹巴县| 昌图县| 理塘县| 阜宁县| 若尔盖县| 溧阳市| 炉霍县| 石景山区| 水富县| 沧州市| 蓝山县| 尖扎县| 新巴尔虎右旗| 韶山市| 吉林市| 临沭县| 景谷| 梅河口市| 修武县| 沂南县| 福清市|