器给予的业务逻辑对象多少种服务,spring给用户提供的服务完全由用户自己决定,spring想用什么服务自己开启使用。但是重量级的都是只要你用就把所有的服务都给你,不能自己定制。spring容器从来不能独立运行,一定借助于其他容器启动,或者借助web容器启动,或者ejb容器启动。Spring的特点是应用模块之间耦合度小,组件都是可重用的,都是各自打包的。Spring动态解藕,方便开发,面向接口设计,通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。方便程序的测试TDD(Test-DrivenDevelopment)可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。它降低JavaEEAPI的使用难度Spring对很多难用的JavaEEAPI(如JDBC,JavaMail,远程调用等)提供了一个简单的封装层,通过Spring的简易封装,这些JavaEEAPI的使用难度大为降低。他可以方便集成各种优秀框架Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。对异常的处理方式,所有的都转换成Unchecked的。它不是一个一体化的解决方案。良好的设计,容易扩展,很多可重用的组件。