一.Spring注入的方式通常有两种:
(1)属性的set注入(推荐使用)
(2)构造方法注入(不推荐)
关键类如下:
Chinese类:
package com.java.spring;
public class Chinese implements Person {
private Tool tool;
//方法1:使用set方法(推荐使用)
public Tool getTool() {
return tool;
}
public void setTool(Tool tool) {
this.tool = tool;
}
/*//方法2:构造方法(少用)
public Chinese(Tool tool){
this.tool=tool;
}
*/
@Override
public void work() {
// TODO Auto-generated method stub
tool.realwork();
}
}
ConcreteToolA类:
package com.java.spring;
public class ConcreteToolA implements Tool {
@Override
public void realwork() {
// TODO Auto-generated method stub
System.out.println("from concreteToolA");
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="toolA" class="com.java.spring.ConcreteToolA"></bean>
<bean id="toolB" class="com.java.spring.ConcreteToolB"></bean>
<bean id="chinese" class="com.java.spring.Chinese">
<property name="tool" ref="toolB"></property>
<!-- 方法2:少用
<constructor-arg>
<ref local="toolA"/>
</constructor-arg>
--></bean>
</beans>
对于bean的autowire属性来说,推荐使用default默认值(即手工完成属性的注入工作)