优点:
1.方便解耦,简化开发
ICO集中管理对象,对象和对象之间的耦合度降低,方便维护对象。
2.AOP编程的支持
在不修改代码的情况下可以对业务代码进行增强,减少重复代码的编写,提高开发效率,方便维护
3.声明式事务的支持
只需要一个简单注解@Transactional,提高开发效率
4.方便程序测试
spring实现了测试,可以结合junit非常方便测试springBean,springMVC
5.方便集成各种优秀框架
spring底层提供了很多扩展接口使其拥有非常强大的粘合度,集成能力非常强,只需要简单配合就可以集成第三方框架
6.降低JavaEE API的使用难度
简化开发,封装了很多功能性代码。例如RestTemplate,JDBC,远程调用等。
7.spring源码是值得学习的典范
spring底层的实现,运用到的反射,设计模式值得学习,提供了非常多的扩展接口
缺点:
从应用层面上说是没有缺点的,提供的注解实现的底层复杂的功能
简化了开发,如果想深入底层了解就比较困难--上层越简单,底层封装就越复杂
由于spring大而全,提供了非常多的扩展点,代码量非常庞大使得深入学习困难