一、使用ref引用其他对象

    <!-- 配置 bean -->
<bean id="dao5" class="com.hp.spring.ref.Dao"></bean>
<bean id="service" class="com.hp.spring.ref.Service">
<!-- 通过 ref 属性值指定当前属性指向哪一个 bean! -->
<property name="dao" ref="dao5"></property>
</bean>

二、通过有参构造器创建对象

    <!-- 通过构造器注入属性值 -->
<bean id="helloWorld3" class="com.hp.spring.helloworld.HelloWorld">
<!-- 要求: 在 Bean 中必须有对应的构造器. -->
<constructor-arg value="Mike"></constructor-arg>
</bean>

1 通过index精确定位参数顺序

    <!-- 若一个 bean 有多个构造器, 如何通过构造器来为 bean 的属性赋值 -->
<!-- 可以根据 index 和 value 进行更加精确的定位. (了解) -->
<bean id="car" class="com.hp.spring.helloworld.Car">
<constructor-arg value="KUGA" index="1"></constructor-arg>
<constructor-arg value="ChangAnFord" index="0"></constructor-arg>
<constructor-arg value="250000" type="float"></constructor-arg>
</bean>
<bean id="car2" class="com.hp.spring.helloworld.Car">
<constructor-arg value="ChangAnMazda"></constructor-arg>
<!-- 若字面值中包含特殊字符, 则可以使用 DCDATA 来进行赋值. (了解) -->
<constructor-arg>
<value><![CDATA[<ATARZA>]]></value>
</constructor-arg>
<constructor-arg value="180" type="int"></constructor-arg>
</bean>

三、引用bean

1 使用内部bean

    <!-- 声明使用内部 bean -->
<bean id="service2" class="com.hp.spring.ref.Service">
<property name="dao">
<!-- 内部 bean, 类似于匿名内部类对象. 不能被外部的 bean 来引用, 也没有必要设置 id 属性 -->
<bean class="com.hp.spring.ref.Dao">
<property name="dataSource" value="c3p0"></property>
</bean>
</property>
</bean>

2 使用list,set

    <!-- 装配集合属性 -->
<bean id="user" class="com.hp.spring.helloworld.User">
<property name="userName" value="Jack"></property>
<property name="cars">
<!-- 使用 list 元素来装配集合属性 -->
<list>
<ref bean="car"/>
<ref bean="car2"/>
</list>
</property>
</bean>

3 声明集合类型

    <!-- 声明集合类型的 bean -->
<util:list id="cars">
<ref bean="car"/>
<ref bean="car2"/>
</util:list> <bean id="user2" class="com.hp.spring.helloworld.User">
<property name="userName" value="Rose"></property>
<!-- 引用外部声明的 list -->
<property name="cars" ref="cars"></property>
</bean>

四、其他

1 使用p命名空间进行注入属性

    <bean id="user3" class="com.hp.spring.helloworld.User"
p:cars-ref="cars" p:userName="Titannic"></bean>

2 使用parent继承

    <!-- bean 的配置能够继承吗 ? 使用 parent 来完成继承 -->
<bean id="user4" parent="user" p:userName="Bob"></bean> <bean id="user6" parent="user" p:userName="维多利亚"></bean>

3 使用depends-on

使用depends-on时,被depends-on引用的对象,必须存在,否则抛出异常

    <!-- 测试 depents-on -->
<bean id="user5" parent="user" p:userName="Backham" depends-on="user6"></bean>

整个系列项目代码: http://git.oschina.net/nmc5/spring

最新文章

  1. CocoaPod 使用方法
  2. ionic2 图片上传
  3. java异步式Socket响应数据获取方案
  4. Redis 系列 (一) StackExchange.Redis的使用
  5. sql语句中获取datetime的日期部分或时间部分
  6. 第三课 Spinner的使用
  7. (转)关于java和web项目中的相对路径问题
  8. Android RecyclerView(瀑布流)水平/垂直方向分割线
  9. [ CodeVS冲杯之路 ] P1165
  10. wxWidgets Tutorial
  11. SimpleDateFormat的线程安全问题
  12. 《Windows驱动开发技术详解》之定时器
  13. IOS开发-UI学习-UIWebView,简单浏览器的制作
  14. css字体图标的使用方法
  15. C# FTP操作类的代码
  16. Nginx简单的负载均衡入门
  17. 代码学习-Linux内核网卡收包过程(NAPI)【转】
  18. Java文件写入与读取实例求最大子数组
  19. 列表中文字太多 溢出使用省略号css方法
  20. 实现A星算法

热门文章

  1. js手机滚屏效果
  2. Yii2高级模板的安装
  3. linux POSIX信号量
  4. shell重定向的顺序问题
  5. JS 变量 相关内容
  6. XML 扩展部分
  7. 第48章 MDK的编译过程及文件类型全解
  8. opencv 打开摄像头(c++)
  9. 骑马修栅栏 Riding the Fences
  10. PHP中的闭包小谈