一個 bean 定義可以包含很多配置資訊,包括構造函數參數、屬性值和容器特定的資訊,例如初始化方法、靜态工廠方法名稱等。
子 bean 定義從父定義繼承配置資料。子定義可以根據需要覆寫某些值或添加其他值。
Spring Bean定義繼承與Java類繼承無關,但是繼承的概念是一樣的。您可以将父 bean 定義定義為模闆,其他子 bean 可以從父 bean 繼承所需的配置。
當您使用基于 XML 的配置中繼資料時,您通過使用parent屬性來訓示子 bean 定義,将父 bean 指定為該屬性的值。
例子
讓我們有一個工作的 Eclipse IDE 并采取以下步驟來建立一個 Spring 應用程式 -

以下是配置檔案beans.xml中,我們定義的“HelloWorld”豆它有兩個屬性MESSAGE1和消息2。下一個“helloIndia” bean 已認證使用parent屬性定義為“helloWorld” bean 的子代。孩子繼承豆消息2财産是,和覆寫MESSAGE1财産,并介紹了一個更多的财産MESSAGE3。
這是HelloWorld.java檔案的内容-
這是HelloIndia.java檔案的内容-
以下是MainApp.java檔案的内容-
完成源檔案和 bean 配置檔案的建立後,讓我們運作應用程式。如果您的應用程式一切正常,它将列印以下消息 -
如果您在這裡觀察到,我們在建立“helloIndia”bean 時沒有傳遞 message2,但是由于 Bean 定義繼承,它通過了。
Bean 定義模闆
您可以建立一個 Bean 定義模闆,它可以被其他子 Bean 定義使用而無需付出太多努力。在定義 Bean 定義模闆時,您不應指定class屬性,而應指定抽象 屬性,并應指定值為true的抽象屬性,如下面的代碼片段所示 -
父 bean 不能單獨執行個體化,因為它是不完整的,并且它也被顯式标記為abstract。當定義像這樣抽象時,它隻能用作純模闆 bean 定義,用作子定義的父定義。