Spring的目的:简化Java开发。
spring框架有非常多的优秀特性,我们总结了以下8点。
1*容器化
容器: Spring 包含 并管理应用中 对象的 生命周期和 配置 (很方便配置是单例 还是 原型 ,以及什么时候使用 什么时候销毁 )
2* 方便解耦,简化开发
* Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理,实现松耦合。符合高内聚低耦合的思想,这个特性也叫IOC 控制反转
3* AOP编程的支持
* Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能,
Spring的AOP实现方式有两种:1、Java代理方式(jdk代理);2、Cglib动态增强方式,这两种方式在Spring中是可以无缝自 由切换的。
Java代理方式的优点是不依赖第三方jar包,缺点是不能代理类,只能代理接口。AOP这个底层是反射的原理
4* 声明式事务的支持
* 不需通过编程的方式而进行管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,
只需在配置文件中做相关的事务规则声明,便可将事务规则应用到业务逻辑中。
5* 方便程序的测试
* Spring对Junit4支持,可以通过注解方便的测试Spring程序,需要加入 spring-test 的jar包
6* 方便集成各种优秀框架
* Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持 (如:Struts2、springmvc,Hibernate、MyBatis等)
7*异常处理: Spring 提供方便的API把具体技术相关的异常转化为一致的unchecked 异常。(比如由JDBC,Hibernate or JDO抛出的)
springMVC也有一个集中处理的思想 将异常抛给springmvc框架,由框架来处理异常。
8* 降低JavaEE API的使用难度