zoukankan      html  css  js  c++  java
  • Bean之间的关系

    Bean之间的关系:继承;依赖

    【继承Bean的配置】

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

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

    3.子Bean也可以覆盖从父Bean继承过来的配置。

    /spring-1/src/beans-relation.xml:

    1 <bean id="address" class="com.hk.beans.autowire.Address"
    2       p:city="Beijing^" p:street="WuDaoKou"></bean>
    3 
    4 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
    5 <bean id="address2" p:city="Beijing" p:street="GuoMao" parent="address"></bean>

    运行结果:

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

    /spring-1/src/beans-relation.xml:

    1 <!-- 抽象bean:bean的abstract属性为true的bean,这样的bean不能被IOC容器实例化,只用来被继承配置 
    若某一个bean的class属性没有指定,则该bean必须是一个模板。
    --> 2 <bean id="address" class="com.hk.beans.autowire.Address" 3 p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean> 4 5 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 --> 6 <bean id="address2" p:city="Beijing" p:street="GuoMao" parent="address"></bean>

    运行结果:

    5.并不是<bean>元素里的所有属性都会被继承。比如:autowire,abstract等。

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

    1 <bean id="address" p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean>
    2 
    3 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
    4 <bean id="address2" class="com.hk.beans.autowire.Address" 
    5       p:city="Beijing" p:street="GuoMao" parent="address"></bean>

     7.当子Bean没有给属性赋值,就会继承父Bean的属性值。

    配置文件:

    1 <bean id="address" p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean>
    2 
    3 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
    4 <bean id="address2" class="com.hk.beans.autowire.Address" 
    5       parent="address"></bean>

    运行结果:

    【依赖Bean配置】

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

    配置文件:

    1       <bean id="car" class="com.hk.beans.autowire.Car"
    2             p:brand="Audi" p:price="300000"></bean>
    3       
    4       <!-- 要求在配置Person时,必须有一个关联的car!换句话说,person这个bean依赖于car这个bean -->
    5       <bean id="person" class="com.hk.beans.autowire.Person"
    6             p:name="Tom" p:address-ref="address2" depends-on="car"></bean>

    运行结果:

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

    每接触一个新领域,我就像一块掉进水里的海绵,四面八方的养分都让我不断充实。O(∩_∩)O~
  • 相关阅读:
    vue init webpack projectName命令运行报错 解决方法
    DIV实际高度小于设置高度的问题
    openlayers 地图要素的多种高亮方式 Demo(可直接运行)
    加载wkt到地图 Demo (可直接运行)
    openlayers 框选地图得到选框范围(坐标)Demo(可直接运行)
    element+vue可远程搜索可懒加载的下拉框组件
    Android-使用约束布局(ConstraintLayout)构建灵活的UI【译】
    Mysql explain 执行计划详解(转)
    Managing Hierarchical Data in MySQL(邻接表模型)[转载]
    无限极分类原理与实现(转)
  • 原文地址:https://www.cnblogs.com/zhzcode/p/9610803.html
Copyright © 2011-2022 走看看