优点:
①方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
②AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截,运行监控等功能。
③声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
④方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
⑤方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts,MyBatis等)。
⑥降低JavaEE API的使用难度
Spring对JavaEE开发中非常难用的一些API(JDBC,JavaMail,远程调用等),都提供了封装,使这些API应用难度大大降低。
缺点:
①没有做到依赖管理,比如控制各依赖之间的版本兼容关系,非常麻烦。后续SpringBoot就解决了这一痛点
②Spring包含很多的组件,使用的组件越多,Spring的启动就会越慢