轻量,spring是轻量级的,基本的版本约2MB
控制反转IOC,spring通过控制反转降低耦合性,将创建对象交给spring,将关注点放在业务逻辑上
面向切面AOP,spring支持面向切面编程,将应用业务逻辑和系统服务分开.
容器,spring包含并管理应用中对象的生命周期和配置
事务管理:spring提供了一个持续的事务管理接口,可以扩展到上到本地,下到全部事务
异常处理:spring提供方便的api将具体技术相关的异常转化为同一个unchecked异常
减少代码冗余,简化代码,增强功能,方便管理(数据库,web等方面)
方便藕节,便于开发(Spring就是个大工厂,可以将所有对象和依赖关系维护都交给spring管理)
spring支持aop编程(spring提供面向切面编程,可以很方便的实现对程序的权限拦截和运行监控等功能)
声明式事物的支持(通过配置就完成对事物的支持,不需要手动编程)
方便程序的测试,spring对junit4的支持,可以通过注解方便测试spring的程序
方便集成各种优秀的框架
降低javaEE API的使用难度(spring对javaEE开发中非常难用的一些API,例如JDBC,javamail,远程调用等,都提供了封装,使这些API的应用难度大大降低)
因为spring的分层架构,可以自由的添加想要的组件.由于依赖注入和控制反转,可以简化jdbc,减少代码量,将更多的关注放在业务逻辑上.