心有多大舞臺便有多大

          Embrace changes, pursue excellence, share niceness.

          Spring的InitializingBean和init-method

          Spring在設置完一個bean所有的屬性后,會檢查bean是否實現了InitializingBean接口,如果實現就調用bean的afterPropertiesSet方法。另外,如果bean是單例的,則afterPropertiesSet方法只會被調用一次;否則每次創建bean時afterPropertiesSet方法都會被重新調用.
          Spring雖然可以通過InitializingBean完成一個bean初始化后對這個bean的回調,但是這種方式要求bean實現 InitializingBean接口。一但bean實現了InitializingBean接口,那么這個bean的代碼就和Spring耦合到一起了。通常情況下不建議直接實現InitializingBean,而是用Spring提供的init-method的功能來執行一個bean 子定義的初始化方法,這可以在一個bean的配置文件中通過init-method聲明:
          <bean id="testBean" class="TestClass" init-method="initialize"/>
          spring要求這個init-method方法是一個無參數的方法
          如果一個bean同時實現了這兩種方式的初始化配置,則spring會先調用afterPropertiesSet方法,然后通過反射調用init-method,任何一個方法出錯都會導致spring創建bean失敗.如果afterPropertiesSet方法調用失敗,也不會再繼續執行init-mehtod方法.

          posted on 2008-04-14 15:36 pony 閱讀(11825) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 比如县| 公安县| 三亚市| 甘孜| 宜丰县| 岗巴县| 望都县| 平遥县| 襄汾县| 繁昌县| 青阳县| 土默特左旗| 榕江县| 黑水县| 常宁市| 孙吴县| 房山区| 康定县| 图木舒克市| 湟源县| 丹江口市| 静乐县| 临桂县| 闻喜县| 江永县| 竹北市| 张家港市| 拉孜县| 汪清县| 麻城市| 图木舒克市| 樟树市| 花垣县| 隆安县| 伊吾县| 夏河县| 布拖县| 眉山市| 贵阳市| 安陆市| 吉水县|