bean之间的关系:继承和依赖
继承bean的配置

  •   Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的bean称为子bean
  •   子bean从父bean中继承配置,包括bean的属性配置
  •   子bean也可以覆盖从父bean继承过来的配置
  •   父bean可以作为配置模版,也可以作为bean实例,若只想把父bean作为模板,可以设置<bean>的abstract属性为true,这样Spring将不会实例化这个bean
  •   并不是<bean>元素里的所有属性都会被继承。比如:autowire,abstract等
  •   也可以忽略父bean的class属性,让子bean指定自己的类,而共享相同的属性配置,但此时abstract必须设为true

依赖bean配置
  Spring允许用户通过depends-on属性设定bean前置依赖的bean,前置依赖的bean会在本bean实例化之前创建
  如果前置依赖多个bean,则可以通过逗号,空格的方式配置bean的名称

示例:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 抽象bean:bean的abstract属性为true的bean,这样的bean不能被IOC实例化,只能用来被继承配置
若某一个bean的class属性没有指定,则改bean必须是一个抽象bean
-->
<bean id="address"
p:city="BeiJing" p:street="HuiLongGuan" abstract="true"></bean>
<!-- bean配置的继承:使用bean的parent属性指定继承哪个bean的配置 -->
<bean id="address2" class="com.yl.autowire.Address" parent="address"></bean> <bean id="address3" class="com.yl.autowire.Address"
parent="address2" p:street="WuDaoKou"></bean> <bean id="car" class="com.yl.autowire.Car"
p:brand="Audi" p:price="300000"></bean>
<!-- 要求在配置person时,必须有一个关联的car!换句话就是person这个bean依赖于car这个bean -->
<bean id="person" class="com.yl.autowire.Person"
p:name="Tom" p:address-ref="address2" depends-on="car"></bean>
</beans>

Spring Bean之间的关系的更多相关文章

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

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

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

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

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

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

  4. Spring(九):Spring配置Bean(二)自动装配的模式、Bean之间的关系

    XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式,模式包含:byType,byName, ...

  5. 3.spring:自动装配/Bean之间的关系/作用域/外部文件/spel/

    1.自动装配/手动装配 xml配置文件里的bean自动装配 Spring IOC 容器里可以自动的装配Bean,需要做的仅仅是在<bean>的autowire属性里面指定自动装配模式 -& ...

  6. Spring学习--Bean 之间的关系

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

  7. Spring初学之bean之间的关系和bean的作用域

    一.bean之间的关系 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  8. 峰Spring4学习(5)bean之间的关系和bean的作用范围

    一.bean之间的关系: 1)继承: People.java实体类: package com.cy.entity; public class People { private int id; priv ...

  9. Spring_自动装配 & bean之间的关系 & bean的作用域

    1.自动装配 beans-autowire.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

随机推荐

  1. Android中的时间日期选择器

    1.layout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...

  2. vi使用教程

    Vi有3种模式: 命令模式——命令操作 插入模式——进入vi之后,输入i/a/o,按Esc键,进入命令模式 编辑模式——:set nu, 以回车结束 1.插入 a - 光标后插入 A - 本行末尾插入 ...

  3. oracle 将科学计数法数据转换为非科学计数法数据

    oracle 自定义函数: CREATE OR REPLACE FUNCTION ConvertNumeric(rawData VARCHAR2) --用于返回转换科学计算法dhx RETURN VA ...

  4. chown

    chown 命令 用途:更改与文件关联的所有者或组 chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File ... | Directory ... } c ...

  5. 滚珠菜单动效-b

    原型从网上找的,动效使用了CAAnimation和UIDynamic物理引擎.  gitHub  :https://github.com/BearRan/FlowMenuAnimation 大致步骤如 ...

  6. [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)

    以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...

  7. Spark的TorrentBroadcast:实现

    依据Spark 1.4版 序列化和反序列化 前边提到,TorrentBroadcast的关键就在于特殊的序列化和反序列化设置.1.1版的TorrentBroadcast实现了自己的readObject ...

  8. define中的:#,##,#@

    [define中的:#,##,#@] #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x (2)x##y表示什么?表 ...

  9. 12 求1+2+...+n

    参考 http://www.cppblog.com/zengwei0771/archive/2012/04/28/173014.html 和 http://blog.csdn.net/shiren_b ...

  10. highcharts 折线图

    <!doctype html> <html lang="en"> <head> <script type="text/javas ...