需要的包?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.nhooo/groupId artifactIdspring-demo/artifactId version1.0/version properties maven.compiler.source8/maven.compiler.source maven.compiler.target8/maven.compiler.target /properties dependencies !-- 3个包-- dependency groupIdorg.springframework/groupId artifactIdspring-core/artifactId version3.0.1.RELEASE/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-beans/artifactId version3.0.1.RELEASE/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version3.0.1.RELEASE/version /dependency dependency groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId version1.1.1/version /dependency /dependencies /project1.autowire装配A类 包含B类package com.smr; public class A { private B b; public B getB() { return b; } public void setB(B b) { this.b b; } public A() { System.out.println(A); } public A(B b) { this.b b; } void print(){ System.out.println(Aprint); } public void show(){ b.print(); print(); } }B类package com.smr; public class B { public B() { System.out.println(B); } void print(){ System.out.println(Bprint); } }配置自动装配 autowirebyNamebean id和引用名称必须相同autowirebyType 名称不用一致autowireconstructor 构造函数名称一致?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:phttp://www.springframework.org/schema/p xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd bean idb classcom.smr.B/bean bean idA classcom.smr.A autowirebyName/bean /beans!--byType 名称无所谓-- bean idb1 classcom.smr.B/bean bean idA classcom.smr.A autowirebyType/bean!--构造函数-- bean idb classcom.smr.B/bean bean idA classcom.smr.A autowireconstructor/bean!--不会自动装配置 报错 in thread main java.lang.NullPointerException: Cannot invoke com.smr.B.print() bean idb classcom.smr.B/bean bean idA classcom.smr.A autowireno/bean--测试类package com.smr; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml); A aapplicationContext.getBean(A,A.class); a.show(); } }BABprintAprint2.Spring Dependency注入publicstaticA GetA(){ return new A(); }factory-methodGetA工厂方法staticbean ida classcom.smr.A factory-methodGetA/beanpackage com.smr; public class A { public A GetA(){ return new A(); } }factory-bean:表示将调用工厂方法的bean的引用。如果工厂方法是非静态的则使用它。创建的不是单例唯一值beanidastaticclasscom.smr.A /bean bean ida classcom.smr.A factory-methodGetAfactory-beanastatic/bean