Spring有IOC和AOP两个核心。其中IOC我们说的控制反转,也就是将创建对象并生命周期的管理过程交给Spring处理。在开发中不再需要关注对象的创建和声明周期的管理,由Spring框架提供。这个由Spring管理创建对象和生命周期的机制称为控制反转。
原理1.创建过程
在初始化一个Spring容器时,Spring会解析spring的配置文件(applicationContext.xml),从上到下解析到
//定义student类
public class Student {
public void study(String string){
System.out.println(string);
}
}
1.set注入
//注入student类 1.set注入
public class StudentSet {
private Student student;
public void setStudent(Student student){
this.student=student;
}
}
2.构造注入
//注入student类 2.构造注入
public class StudentConstructor {
private Student student;
public StudentConstructor (Student student){
this.student=student;
}
}
3.静态工厂注入
//静态工厂注入
public class StudentFactory {
public static final Student getInstence(){
return new Student();
}
}
//注入student类 3.静态工厂注入
public class StudentSet {
private Student student;
public void setStudent(Demo demo){
this.demo = demo;
}
}
注意
1.bean标签创建的实例默认是单例的,也就是说通过同一个id获取到的bean对象是相同的对象,如果类里面有共享的成员变量,会存在安全性的问题。
2.可以通过bean标签的scope 属性指定是否单例,singleton/为单例,prototype/每次都会获取到一个新的实例



