Type1接口注入:
public class ClassA{
private InterfaceB classB;
public doSomething(){
Object obj = Class.forName(Config.BImplementation).newInstance();
classB = (InterfaceB)ojb;
classB.doIt();
}
}
Type2setter注入:
setter:
public class RequestAction{
private String message;
public void setMessage(String msg){
this.message = msg;
}
public String getMessage(){
return message;
}
public void method(String str){
Syso(getMessage()+str);
}
}
applicationContext.xml:
<bean id = "theAction" class="xxx.xxx.RequestAction">
<property name = "message">
<value>Hello</value>
</property>
</bean>
Test.java:
@Test
public void test(){
ApplicationContext context = new ClassPathApplicationContext("xxx/ApplicationContext.xml");
RequestAction action = (RequestAction)context.getBean("theAction");
Syso(action.method("World!"));
}
Type3构造注入:
public class DIByCondstructor{
private final DataSource dataSource;
private final String message;
public DIByConstructor(DataSource ds,String msg){
this.dataSource = ds;
this.message = msg;
}
}