spring学习笔记四 bean之间的关系

来源:互联网 发布:网络用语马克啥意思 编辑:程序博客网 时间:2024/06/05 05:57

一、继承关系

      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-3.2.xsd">        <bean id="address" class="autowire.Address"    p:city="BeiJing" p:street="WuDaoKou"></bean>        <!-- bean配置的继承;使用bean的parent属性指定继承哪个bean         abstract属性设置为true,bean被抽象化,只用来被继承,作为模板,如果被当成实例化来创建时,就会出错;autowire和abstract不会被继承     -->    <bean id="address2"  p:street="huangshan" parent="address"></bean>    </beans>

首先创建一个bean:

<bean id="address" class="autowire.Address"    p:city="BeiJing" p:street="WuDaoKou"></bean>
在创建一个bean,其中有很多相同之处,为了简化代码,可以继承address

<bean id="address2"  p:street="huangshan" parent="address"></bean> 


可以创建一个bean模板,添加一个abstract,值设为true;模板是不能被实例化的,只提供被继承;

 <bean id="address" class="autowire.Address"
    p:city="BeiJing" p:street="WuDaoKou" abstract="true"></bean>

注意:如果抽象对的bean被实例化,就会报错,同抽象类一样不能被实例化;

二、依赖关系

 <bean id="car1" class="autowire.car"      p:brand="Audi" p:price="300000"></bean>
<!-- 要求再配置bean时,必须有一个关联的car,换句话说就是person依赖于car,如果不指定就会出错 -->    <bean id="person" class="autowire.person"     p:name="Tom" p:address-ref="address2"  p:car-ref="car1" depends-on="car1"></bean>

1、spring允许用户通过depends-on属性设定bean前置以来bean,前置依赖的bean会在本bean实例化之前被创建好;

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

原创粉丝点击