一个bean定义可以包含很多配置信息,包括构造函数参数,属性值,以及容器特定的信息,比如初始化方法,静态工厂方法名等等。子bean定义从父定义继承配置数据。子定义可以覆盖某些值或根据需要添加其他值。SpringBean定义继承与Java类继承无关,但继承的概念是一样的。您可以将父bean定义为模板,其他子bean可以从父bean继承所需的配置。当您使用基于XML的配置元数据时,您可以使用parent属性指示子bean定义,并将父bean指定为该属性的值。示例让我们有一个工作的EclipseIDE并按照以下步骤创建一个Spring应用程序-以下是配置文件beans.xml,我们定义了“HelloWorld”bean,它具有两个属性MESSAGE1和MESSAGE2。下一个“helloIndia”bean已使用parent属性定义为“helloWorld”bean的子级。子级继承了bean的Message2属性,覆盖了MESSAGE1属性,并引入了另一个属性MESSAGE3。这是HelloWorld.java文件的内容-这是HelloIndia.java文件的内容-下面是MainApp.java文件的内容-创建完源文件和bean配置文件后,让我们运行应用程序.如果您的应用程序一切正常,它将打印以下消息-如果您在这里观察到,我们在创建“helloIndia”bean时没有传递message2,但由于bean定义继承,它传递了。Bean定义模板您可以轻松创建一个bean定义模板,其他子bean定义可以使用该模板。在定义bean定义模板的时候,不应该指定class属性,而是abstract属性,并且应该指定一个值为true的abstract属性,如下代码片段所示——父bean不能单独实例化,因为它是不完整的,它也被明确标记为抽象的。当一个定义被抽象成这样时,它只能作为一个纯模板bean定义,作为一个子定义的父定义。
