工作原理
1、Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2、Spring本质上是一个监听器
3、控制反转:让一个对象的创建不用new了,可以自动的生产
publicclass PersonServiceBean {
private PersonDao personDao = new PersonDaoBean();
public save(Person person) {
personDao.save(person);
}
}
PersonDaoBean是在应用内部创建及维护。所谓控制反转就是应用本身不负责对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。
4、依赖注入:
@Resource
private DepartmentDao departmentDao;
publicvoid delete(Long id) {
departmentDao.delete(id);
}
当我们把依赖对象交给外部容器负责创建,在运行期,由外部容器动态的将依赖对象注入到组件中。
可以通过构造器参数、setter方法、注解这3种方式注入。
5、面向切面编程AOP:
OOP擅长定义从上到下的关系,但并不适合定义从左到右的关系。切面是将那些与业务无关(比如日志),却被业务模块共同调用的逻辑提取并封装,减少系统中的重复代码。比如实现权限拦截、运行期监控等。
6、容器:很好地与其他框架集成
比如struts与spring整合、spring与hibernate整合
7、框架模块很多,但核心是BeanFactory,管理JavaBean。还支持事务管理、单例模式等。
8、Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码(new 创建对象)来关联,都是通过配置说明管理的。