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

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

    示例:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     6     
     7     <!-- 抽象bean:bean的abstract属性为true的bean,这样的bean不能被IOC实例化,只能用来被继承配置
     8         若某一个bean的class属性没有指定,则改bean必须是一个抽象bean
     9      -->
    10     <bean id="address" 
    11         p:city="BeiJing" p:street="HuiLongGuan" abstract="true"></bean>
    12     <!-- bean配置的继承:使用bean的parent属性指定继承哪个bean的配置 -->
    13     <bean id="address2" class="com.yl.autowire.Address" parent="address"></bean>
    14     
    15     <bean id="address3" class="com.yl.autowire.Address" 
    16         parent="address2" p:street="WuDaoKou"></bean>
    17         
    18     <bean id="car" class="com.yl.autowire.Car" 
    19         p:brand="Audi" p:price="300000"></bean>
    20     <!-- 要求在配置person时,必须有一个关联的car!换句话就是person这个bean依赖于car这个bean -->
    21     <bean id="person" class="com.yl.autowire.Person" 
    22         p:name="Tom" p:address-ref="address2" depends-on="car"></bean>
    23 </beans>
  • 相关阅读:
    C语言实现两栈空间共享
    MyEclipse里项目部署到tomcat上之后,tomcat webpps文件夹里为什么找不到这个项目
    CSS选择器
    用友2016成都校园招聘笔试题
    windows、ubuntu下eclipse搭建java、Python环境问题总结
    ubuntu上用eclipse搭建java、python开发环境
    windows 下用eclipse搭建java、python开发环境
    简单事件机制的研究
    软件测试(软件安装:php+mysql+apache+mantis过程遇到的问题以及解决方法)
    4、总结一下,以软件开发生命周期来说明测试的使用情况。
  • 原文地址:https://www.cnblogs.com/dreamfree/p/4080112.html
Copyright © 2011-2022 走看看