Spring IOC容器基于配置文件装配Bean(7) ------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">

    <!--Spring中bean的关系主要有依赖关系和继承关系-->

    <!-- 父bean -->
    <!--<config id="addressBean" class="com.spring.cn.configig.autowire.AddressBean"-->
    <!--p:city="成都" p:street="孵化园街道"/>-->

    <!--
        1.抽象bean,不能被IOC实例化,只能被继承,abstract="true"设置抽象bean
        2.并不是所有的属性都会被子类bean继承,比如abstract
        3.若某一个bean的class属性没有指定,则该bean一定是一个抽象bean
        -->
    <bean id="addressBean" class="com.spring.cn.config.autowire.AddressBean"
          p:city="成都" p:street="孵化园街道" abstract="true"/>

    <!-- bean配置的继承,使用parent属性指定继承哪个bean -->
    <!--子bean-->
    <bean id="addressBean1" parent="addressBean"/>

    <!-- 重写city,street -->
    <bean id="addressBean2" parent="addressBean1"
          p:city="重庆" p:street="解放碑"/>

    <bean id="carBean" class="com.spring.cn.config.autowire.CarBean"
          p:brand="奔驰" p:price="200000"/>

    <!--
        bean的依赖关系
        1. 可以通过depends-on属性设定bean的前置依赖关系,前置依赖bean会在本bean初始化之前创建好
        2. 如果前置依赖于多个bean,则可以通过逗号,空格的方式添加
    -->
    <bean id="personBean" class="com.spring.cn.config.autowire.PersonBean"
          p:name="donleo" p:addressBean-ref="addressBean2" depends-on="carBean"/>

</beans>
作者:donleo123
本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
原文地址:https://www.cnblogs.com/donleo123/p/14069432.html