继承Bean配置

Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean

子Bean从父Bean中继承配置,包括Bean的属性配置

子Bean可以覆盖从父Bean继承过来的配置

父Bean可以作为配置模版,也可以作为Bean实例。若只想把父Bean作为模版,可以设置<bean>的abstract属性为true,这样的String将不会实例化这个Bean

并不是<bean>元素里的所有属性都会被继承。比如:autowir、eabstract等,

可以忽略父Bean的class属性,让子Bean指定自己的类,而共享相同属性配置,但此时abstract必须设置为true

<!--抽象Bean:bean的abstract属性为true的bean,这样的bean不能被IOC容器实例化,只用来被继承配置. 若某一个beanclass属性没有指定,则该bean必须是一个抽象bean -->

<bean id="address"
class="cn.bdqn.spring.Address" p:ciyt="beijing"

p:street="wudaokou" abstract="true"></bean>

<bean id="a1"
class="cn.bdqn.spring.Address" p:street="肖家河"

parent="address">

</bean>

Bean之间的依赖关系

Spring允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好

如果前置依赖于多个Bean,可以通过逗号,空格或的方式配置Bean的名称

<bean id="person"
class="cn.bdqn.spring.Person" p:name="zhangsna"

p:age="23" depends-on="car">

</bean>

<bean id="car" class="cn.bdqn.spring.Car"
p:brand="ford" p:price="100000"></bean>

Spring 中bean 的继承和Java 中bean 的继承有如下区别:

1、Spring 中的子bean 和父bean 可以是不同类型,但在Java 中的,子类是对父类的加强,是一种特殊的父类。
 2、Spring 中bean 的继承是实例之间的关系,主要表现为参数值的延续:而Java 中的继承是类与类之间的关系,主要表现为方法及属性的延续。
 3、Spring 中子bean 不可作父bean 使用,不具备多态'性:而Java 中的子类实例完全可当成父类实例使用。

<bean id="person" class="cn.bdqn.spring.Person" p:name="zhangsna"p:age="23" depends-on="car"></bean><bean id="car" class="cn.bdqn.spring.Car" p:brand="ford" p:price="100000"></bean>

bean之间的继承和依赖关系的更多相关文章

  1. Spring基础——在 IOC 容器中 Bean 之间的关系

    一.在 Spring IOC 容器中 Bean 之间存在继承和依赖关系. 需要注意的是,这个继承和依赖指的是 bean 的配置之间的关系,而不是指实际意义上类与类之间的继承与依赖,它们不是一个概念. ...

  2. spring bean之间的关系:继承,依赖,注入

    一 继承 spring中多个bean之间的继承关系,和面向对象中的继承关系类似,直接看代码. 先定义一个Person类 package com.demo.spring.entity; /** * @a ...

  3. Spring基础10——Bean之间关系

    1.前言 不同的Bean之间存在两种关系:继承和依赖,这里的继承与java中的继承不同,它指的是配置上的继承. 2.继承bean配置 Spring允许继承bean的配置,被继承的bean成为父bean ...

  4. Spring框架学习之高级依赖关系配置(一)

    上篇文章我们对Spring做了初步的学习,了解了基本的依赖注入思想.学会简单的配置bean.能够使用Spring容器管理我们的bean实例等.但这还只是相对较浅显的内容,本篇将介绍bean的相关更高级 ...

  5. 【Unity3D技术文档翻译】第1.4篇 AssetBundle 依赖关系

    上一章:[Unity3D技术文档翻译]第1.3篇 创建 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...

  6. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. spring bean之间的关系:继承;依赖

    概要: ' 继承Bean配置 Spring同意继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean 子Bean从父Bean中继承配置,包含Bean的属性配置 ...

  8. Spring Bean之间的关系

    bean之间的关系:继承和依赖继承bean的配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的bean称为子bean 子bean从父bean中继承配置,包括 ...

  9. Bean之间的关系

    Bean之间主要有继承和依赖的关系,这里的继承并不是我们面向对象里面所提到的继承. 继承 我们先来创建一个新的配置文件beans-relation.xml <bean id="addr ...

随机推荐

  1. Angular $broadcast和$emit和$ond实现父子通信

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  2. 流程控制之if判断,while循环,for循环

    if判断? 什么是if判断? 判断一个条件如果成立则做...不成立则... 为什么要有判断? 让计算机像人一样具备判断的能力 如何用if判断 if 条件1: code1    code2    cod ...

  3. 用java编网页的学习流程,我的一些小心得(初学java到高深运用)

    (1)java基础:首先得会写int,String,for循环,数组,**等等(熟练各种基础的关键字,各种java自带的排序,随即等等算法)什么是封装,继承,多态,然后private,public,p ...

  4. xhtml和html的差別

    xhtml和html主要區別: 元素必須正確嵌套: 元素必須正確閉合: 必須要有根元素: 元素必須使用小寫. xhtml語法: 屬性名必須小寫: 屬性值必須帶引號: 使用id代替name: lang屬 ...

  5. 如何在Anaconda中实现多版本python共存

    anaconda中Python版本是3.5,因为爬虫原因,需要Python2.7版本,因此,希望能在anaconda中Python3和Python2共存. 1. 打开Anaconda Prompt,可 ...

  6. python深浅copy探究

    引入 在python程序中,如果我们操作一个变量的值去做运算,而又想在下次调用时,仍使用原来的变量的值去做运算,那么我们我们就需要将这个变量去做备份,这就是本文所要探究的问题. 开始 变量-对象-引用 ...

  7. day11 map函数

    场景模拟:实现一个列表内所有元素 *2 的效果 普通的实现方式单个列表是可以做到很轻松的实现,但是如果我又多个列表都要这个操作,那每个都操作就会重复代码 ret = [] num_1 = [1,2,1 ...

  8. Mysql数据库基础小实例 学员管理系统菜单

    package test; import java.sql.*; import java.util.Scanner; public class testSql002_StudentTest { /** ...

  9. Status: Checked in and viewable by authorized users 出现在sharepoint 2013 home 页面

    点击home页面上方的publish-> publishing->publish

  10. es某个分片受损或卡在INITIALIZING状态时解决办法

    参考这篇文章 # OK last warning: you will probably lose data. Don't do this if you can't risk that. CLUSTER ...