Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。
DI dependency injection
IOC inversion of controller
setter 方法注入
public class Student{
public String name;
public List scource;
get、set器。。。
}
Public class Teacher{
Private Student student;
//添加student的set方法
Public setStudent(Student student){
This.student=student;
}
public static void main(String [] arg){
System.out.println(student);
}
}
Xml配置,注册到Sprnig
<!—就将student注入到teacher的属性里了-->
<bean id=”student” class=”…”/>
<bean id=”theacher” class=”…”>
<property name=”student” ref=”student”/>
</bean>
构造器注入
public class Student{
public String name;
public List scource;
get、set器。。。
}
Public class Teacher{
Private Student student;
//这里不需要student的set器
//需要Teacher构造器
Public void Teacher(Sudent student){
This.student=student;
}
public static void main(String [] arg){
System.out.println(student);
}
}
Xml配置,注册到Sprnig
<bean id=”student” class=”…”/>
<bean id=”teacher” class=”…”>
<constructor-arg index=”0” ref=”student”/>
</bean>
注解注入
@Autowired 由Spring提供,只按照类型byType注入。
@Resource 由J2EE提供,默认按照名称byName自动注入,不成功则按byType的方式自动装配。
Xml配置,开启注解
<context:annotation-config/>
<context:component-scan base-package=””/>