简单的说,Spring是一个 轻量级 的 IoC 和 AOP 容器框架。它概括出了Spring的功能。下面把这个描述分解开来。
@轻量级 —— 整个Spring框架可以打成一个1MB多一点的JAR包,并且它的处理开支也非常小。更重要的是,Spring是非侵
入式的:基于Spring开发的系统中的对象一般不依赖于Spring的类。
@IoC —— Spring提倡使用反向控制(IoC)来实现松耦合。使用IoC,对象是被动接收依赖类而不是自己主动去找。对象
不是从容器中查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给它。
@AOP —— Spring对面向切面(AOP)编程提供了强大支持,通过将业务逻辑从系统服务(如监控和事务管理)中分离出
来,实现了内聚开发。系统对象只做它们该做的——业务逻辑,它们不负责不关心其它系统问题(如日志和事
务支持)。
@容器 —— Spring是一个容器,是因为它包含并且管理系统对象的生命周期和配置。你可以通过配置来设定你的Bean是
单一实例,还是每次请求产生一个实例,并且设定它们之间的关联关系。Spring有别于传统的重量级EJB容器
这些容器通常很大,很笨重。
@框架 —— Spring实现了使用简单的组件配置组合成一个复杂的系统。在Spring中,系统中的对象是通过XML文件配置组
合起来的。并且Spring提供了很多基础功能(事务管理、持久层集成等),这使开发人员能够专注于开发应用
逻辑。
所有Spring的这些特性使你的代码更加清晰,更容易管理,更容易测试。