Spring.NET通過幾個專門的接口來控制容器中對象的行爲。說到對象的行爲無非就要提到對象的生命週期控制。類似在WinForm開發,Form生命週期中,Load方法爲Form的載入方法和Dispose方法爲Form的銷燬方法。Spring.NET都能完美的實現這些需求。
一、生命週期接口
在使用Spring.NET框架的時候通常遇到怎樣初始化和銷燬非託管資源(如數據庫連接)的麻煩,下面的解決方案可能對您有所幫助。
1.初始化行爲
繼承Spring.Objects.Factory.IInitializingObject接口或者配置object節點的init-method屬性,Spring.NET的IoC框架就會幫我們在該對象被實例後調用配置好的初始化方法。
2.銷燬行爲
繼承System.IDisposable接口或者在object節點配置destroy-method屬性,Spring.NET會幫我們在容器被銷燬時調用它。
實現代碼:
二、抽象對象定義和子對象定義
對象定義可能會包含大量的信息,比如與容器相關的信息(即初始化方法、靜態工廠方法名等)、構造器參數和屬性值等。子對象定義是指從一個父對象定義中繼承了配置數據的對象定義。子對象定義可以根據需要重寫或添加某些配置的值。使用父對象和子對象的定義方式可能會節省大量的鍵入工作。實際上這是設計模式中模板模式的一種形式。個人認爲可以解決“子類”與“父類”之間的耦合。
在object節點中設置parent屬性來指明是繼承關係,而並非正真意義的繼承。
實現代碼:
我們可以看出Child類並沒有繼承Parent類。
輸出效果: