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代码:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean name="service" class="cn.javass.spring.SampleServiceImpl"/>
- <bean name="sampleAction" class="cn.javass.spring.SampleAction" scope="prototype" autowire="byName">
- </bean>
- </beans>
去测试看看,运行一切正常,当然更多Spring的知识,这里就不去涉及了。
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4137.html】
欢迎访问http://sishuok.com获取更多内容