概要:

继承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的名称

实例代码具体解释
代码结构:


Main.java
package com.coslay.beans.relation;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.coslay.beans.autowire.Address;
import com.coslay.beans.autowire.Person; public class Main {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-relation.xml"); Address address = (Address) ctx.getBean("address3");
System.out.println(address); address = (Address) ctx.getBean("address2");
System.out.println(address); Person person = (Person) ctx.getBean("person");
System.out.println(person);
}
}


beans-relation.xml

<?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="WuDaoKou" abstract="true"></bean> <!-- <bean id="address2" class="com.coslay.beans.autowire.Address"
p:city="Beijing" p:street="DaZhongSi"></bean> -->
<!-- bean 配置的继承:使用bean 的parent 属性指定继承哪个baen的配置 -->
<bean id="address2" class="com.coslay.beans.autowire.Address"
parent="address"></bean> <bean id="address3" class="com.coslay.beans.autowire.Address"
p:street="DaZhongSi" parent="address2"></bean> <bean id="car" class="com.coslay.beans.autowire.Car"
p:brand="Audi" p:price="300000"></bean> <!--
要求在配置Person时,必须有一个关联的car!换句话说person这个bean依赖于Car这个bean
-->
<bean id="person" class="com.coslay.beans.autowire.Person"
p:name="Tom" p:address-ref="address2" depends-on="car"></bean> </beans>

spring bean之间的关系:继承;依赖的更多相关文章

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

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

  2. Spring Bean之间的关系

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

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

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

  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. Bean之间的关系

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

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

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

随机推荐

  1. flex实现股票行情走势图

    原文 http://blog.csdn.net/shenjiancomputer/article/details/8051873 第一步: jsp:1 <%@page import=" ...

  2. DNS解析服务使用的系统对网站的安全起着很重要的作用

    1 采用独享的DNS服务器解析系统 DNS解析服务使用的系统对网站的安全极其重要.现在国内的DNS服务器普遍是公用的,即是你的企业网站DNS解析服务和其他许多网站都是由同一个DNS服务器提供.一旦某个 ...

  3. at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)

    at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333) 原因: null request

  4. 迎接 Windows Azure 和 DNN 挑战,几分钟内快速构建网站!

    编辑人员注释:本文章由高级商务策划师兼开发平台推广者 Neeti Gupta 撰写. 曾几何时,构建一个简单的网站需要耗费好几个月的时间.在过去,.NET 开发人员和设计社区的一些成员使用 DNN(以 ...

  5. java 数字前自动补零实现

    /** * 里数字转字符串前面自动补0的实现. * */ public class TestStringFormat { public static void main(String[] args) ...

  6. openStack CI(Continuous interaction)/CD(Continuous delivery) Gerrit/Jenkins安装及集成,插件配置

    preFace: CI/CD practice part contains the following action items and fields of expertise: Gerrit ins ...

  7. MD5 32位、16位加密

    /// <summary> /// MD5 16位加密 /// </summary> /// <param name="ConvertString"& ...

  8. JQuery UI 精品UI推荐

    1.JQuery MiniUi  http://www.miniui.com/

  9. WinEdt7.0 初试

    刚刚开始学的时候,安装就出了些问题(关于安装的问题,请看我之前的文章)不知道如何点击运行,编译.看了些博客论坛.终于成功了. 首先先写一个小代码: \documentclass[UTF8]{ctexa ...

  10. RHEL与Centos

    一直在用centos,但对他的由来以及与RHEL的关系不是很明白,查些资料,小记一番. 倘若一说到Red Hat这个大名,大家似乎都听过. Qustion1:Red Hat家族中有哪些产品呢? Red ...