一.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默認值(即手工完成屬性的注入工作)