论坛首页 综合技术论坛

15.3 自动装配 15.3.1自动装配 Spring支持自动装配的方式,也就是如果等待注入的对象所提供的属性,与Spring的配置中已经存在的Bean的定义

浏览 1648 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-06-13  

15.3  自动装配

15.3.1自动装配

Spring支持自动装配的方式,也就是如果等待注入的对象所提供的属性,与Spring的配置中已经存在的Bean的定义之间有某种关联的话,就可以不用写<property>元素来手工实现依赖注入的装配了,而是改由Spring来自动装配。

Spring支持多种自动装配的策略:

  • byName:根据对象的属性名称来自动装配。简单点说,就是在Spring的配置中,按照对象属性的名称作为Bean的name来寻找定义的Bean,并自动装配。
  • byType:根据对象属性的类型作为Bean的类型来寻找定义的Bean,并自动装配。
  • constructor:类似于byType,不同的是它是应用于构造方法的参数。
  • autodetect:首先尝试使用constructor,然后尝试使用byType来自动装配。

这些Spring的知识,这里无需过多描述,只需要知道如何使用就可以了。把上面的示例修改一下,使用Spring的自动装配来实现。

主要是要修改applicationContext.xml文件,一是修改配置SampleServiceImpl类的bean的名称为“service”,也就是和SampleAction的“service”属性一样;其二是修改配置SampleAction类的bean的定义,要指定它按照byName的策略来自动装配,另外,原来手工装配“service”的属性的定义就不需要了。示例如下:

 

java代码:
  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.         xsi:schemaLocation="  
  5.             http://www.springframework.org/schema/beans   
  6. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  7.     <bean name="service" class="cn.javass.spring.SampleServiceImpl"/>  
  8.       
  9.     <bean name="sampleAction" class="cn.javass.spring.SampleAction" scope="prototype" autowire="byName">  
  10.     </bean>  
  11. </beans>  

去测试看看,运行一切正常,当然更多Spring的知识,这里就不去涉及了。

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4137.html

欢迎访问http://sishuok.com获取更多内容

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics