Spring Bean 定義繼承
Bean 定義繼承
bean 定義可以包含很多的配置資訊,包括建構函式的引數,屬性值,容器的具體資訊例如初始化方法,靜態工廠方法名,等等。
子 bean 的定義繼承父定義的配置資料。子定義可以根據需要重寫一些值,或者新增其他值。
Spring Bean 定義的繼承與 Java 類的繼承無關,但是繼承的概念是一樣的。你可以定義一個父 bean 的定義作為模板和其他子 bean 就可以從父 bean 中繼承所需的配置。
當你使用基於 XML 的配置後設資料時,透過使用父屬性,指定父 bean 作為該屬性的值來表明子 bean 的定義。
例子
我們在適當的位置使用 Eclipse IDE,然後按照下面的步驟來建立一個 Spring 應用程式:
步驟 | 描述 |
---|---|
1 | 建立一個名稱為 SpringExample 的專案,並且在建立專案的 src 資料夾中建立一個包 com.tutorialspoint。 |
2 | 使用 Add External JARs 選項,新增所需的 Spring 庫,解釋見 Spring Hello World Example 章節。 |
3 | 在 com.tutorialspoint 包中建立 Java 類 HelloWorld、HelloIndia 和 MainApp。 |
4 | 在 src 資料夾中建立 Beans 配置檔案 Beans.xml。 |
5 | 最後一步是建立的所有 Java 檔案和 Bean 配置檔案的內容,並執行應用程式,解釋如下所示。 |
下面是配置檔案 Beans.xml,在該配置檔案中我們定義有兩個屬性 message1 和 message2 的 “helloWorld” bean。然後,使用 parent 屬性把 “helloIndia” bean 定義為 “helloWorld” bean 的孩子。這個子 bean 繼承 message2 的屬性,重寫 message1 的屬性,並且引入一個屬性 message3。
這裡是 HelloWorld.java 檔案的內容:
package com.tutorialspoint; public class HelloWorld { private String message1; private String message2; public void setMessage1(String message){ this.message1 = message; } public void setMessage2(String message){ this.message2 = message; } public void getMessage1(){ System.out.println("World Message1 : " + message1); } public void getMessage2(){ System.out.println("World Message2 : " + message2); } }
這裡是 HelloIndia.java 檔案的內容:
package com.tutorialspoint; public class HelloIndia { private String message1; private String message2; private String message3; public void setMessage1(String message){ this.message1 = message; } public void setMessage2(String message){ this.message2 = message; } public void setMessage3(String message){ this.message3 = message; } public void getMessage1(){ System.out.println("India Message1 : " + message1); } public void getMessage2(){ System.out.println("India Message2 : " + message2); } public void getMessage3(){ System.out.println("India Message3 : " + message3); } }
下面是 MainApp.java 檔案的內容:
package com.tutorialspoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); HelloWorld objA = (HelloWorld) context.getBean("helloWorld"); objA.getMessage1(); objA.getMessage2(); HelloIndia objB = (HelloIndia) context.getBean("helloIndia"); objB.getMessage1(); objB.getMessage2(); objB.getMessage3(); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2807335/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring-Context之九:在bean定義中使用繼承SpringContextBean繼承
- c++繼承,隱藏(重定義)C++繼承
- Spring裡面xml檔案中bean的依賴和繼承SpringXMLBean繼承
- 「Spring認證」Spring Bean 定義教學SpringBean
- spring bean定義與載入方式SpringBean
- Spring核心——Bean的定義與控制SpringBean
- Spring 配置繼承Spring繼承
- Spring:Bean的scope作用域案例講解以及Bean之間的依賴和繼承(3)SpringBean繼承
- Spring系列第十三講 使用繼承簡化bean配置(abstract & parent)Spring繼承Bean
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- C++ protected繼承意義C++繼承
- Spring-Context之四:Spring容器及bean的定義SpringContextBean
- 物件導向:類的定義和繼承的幾種方式物件繼承
- 虛擬繼承的意義 (轉)繼承
- Spring系列第四講 xml中bean定義詳解SpringXMLBean
- 原型,繼承——原型繼承原型繼承
- 菱形繼承,虛繼承繼承
- Spring中bean的含義SpringBean
- 多繼承 與 多重繼承繼承
- C++繼承詳解:共有(public)繼承,私有(private)繼承,保護(protected)繼承C++繼承
- 三種繼承的方法:public 繼承/private繼承/protected繼承詳解及區別繼承
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- 深入理解Spring的Bean定義物件BeanDefinition-面試重點SpringBean物件面試
- 繼承繼承
- C++繼承一之公有繼承C++繼承
- JS原型繼承和類式繼承JS原型繼承
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承
- 公有繼承、私有繼承和保護繼承之間的對比繼承
- 設計模式(三十)----綜合應用-自定義Spring框架-自定義Spring IOC-定義bean、登錄檔相關類設計模式Spring框架Bean
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- 類的繼承_子類繼承父類繼承
- JavaScript繼承JavaScript繼承
- JavaScript 繼承JavaScript繼承
- 多繼承繼承
- Java繼承Java繼承
- javascript:繼承JavaScript繼承
- swift繼承Swift繼承