File: context.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"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="a" class="A"/>
<bean id="b" class="B"/>
<bean id="byName" autowire="byName" class="MyClass"/>
<bean id="byType" autowire="byType" class="MyClass"/>
<bean id="constructor" autowire="constructor" class="MyClass"/>
<bean id="autodetect" autowire="autodetect" class="MyClass"/>
</beans>
File: Main.java
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Main {
public static void main(String[] args) {
XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("context.xml"));
System.out.println("byName:");
System.out.println(bf.getBean("byName"));
System.out.println("byType:");
System.out.println(bf.getBean("byType"));
System.out.println("constructor:");
System.out.println(bf.getBean("constructor"));
System.out.println("autodetect:");
System.out.println(bf.getBean("autodetect"));
}
}
class A {
@Override
public String toString() {
return getClass().getName();
}
}
class B {
@Override
public String toString() {
return getClass().getName();
}
}
class MyClass {
private B B;
private B B2;
private A A;
public MyClass() {
System.out.println("MyClass()");
}
public MyClass(B B) {
System.out.println("MyClass(B)");
this.B = B;
}
public MyClass(B B, A A) {
System.out.println("MyClass(B, A)");
this.B = B;
this.A = A;
}
public void setDependency(A A) {
System.out.println("MyClass.setDependency(A)");
this.A = A;
}
public void setB(B B) {
System.out.println("MyClass.setB(B)");
this.B = B;
}
public void setB2(B B2) {
System.out.println("MyClass.setB2(B)");
this.B2 = B2;
}
public void setA(A A) {
System.out.println("MyClass.setA(A)");
this.A = A;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("MyClass");
sb.append("{B=").append(B);
sb.append(", B2=").append(B2);
sb.append(", A=").append(A);
sb.append('}');
return sb.toString();
}
}
Download: Spring-Autowiring.zip( 2,599 k)