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”的属性的定义就不需要了。示例如下:
去测试看看,运行一切正常,当然更多Spring的知识,这里就不去涉及了。
私塾在线网站原创《研磨struts2》系列