Autowiring
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(); } }