特点:
轻量:Spring的处理开销非常小,而且非侵入式的,也就是说基于Spring开发的系统中的对象一般不依赖于Spring的类。
依赖注入:Spring提倡使用依赖注入(IoC)来实现松耦合。当需要某个类的对象时,从Spring容器中得到而不是通过new实例化对象。
面向切面:将业务逻辑从系统服务(如监控和事务管理)中分离出来,实现内聚开发。系统对象只要做它们该做的——业务逻辑,它们不关心其他系统问题(如日志和事务支持)。
容器:Spring是一个容器,它包括并且管理系统对象的生命周期和配置。
框架:Spring实现了简单的组件配置组合成一个复杂的系统。在Spring中,系统中的对象是通过XML文件配置组合起来的。并且Spring提供了很多基础功能(事务管理、持久层集成等),这使开发人员能专注于开发应用逻辑。
运作流程:
- 1.首先将配置文件读到容器中;
- 2.通过JAVA的反射机制将配置文件中对对象的描述转换成Java对象;
- 3.将这些Java对象按照配置文件中的定义将它们注入到各自匹配的对象中去。
IoC(依赖注入、控制反转):
优点:
因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单,只要修改XML就可以了。
缺点:
生成一个对象的步骤变复杂了点,对象生成因为是使用反射编程,在效率上有些损耗。缺少IDE重构操作的支持,如果在Eclipse要对类改名,那么你还需要去XML文件里手工去改。