直接回答相关的Spring的特点:
IOC
AOP
事务
简化开发:
更加深入就讲源码了
优点:
方便解耦,简化开发
集中管理对象,对象和对象之间的耦合度减低,方便维护对象。
AOP编程的支持
在不修改代码的情况下可以对业务代码进行增强减少重复代码提高开发效率维护方便
声明事物的支持
提高开发效率,只需要个简单注解@Transactional
方便程序测试
Spring实现测试使我们可以结合junit非常方便测试SpringBeanSpringMVC
方便集成各种优秀框架
有非常强大粘合度、集成能力非常,只需要简单配置就可以集成第三方框架
降低JavaEEAPI的使用难度
简化开发,帮我封装很多功能性代码。Spring对很多难用的JavaEEAPI(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些JavaEEAPI的使用难度大为降低。
Java 源码是经典学习范例
学习到了Spring底层的实现、反射.设计模式都是我们值得学习,提供非常多的扩展接口(也就是强大的集成能力的原因。)
缺点:
从应用层面来说是没有缺点的
简化开发,如果想深入到底层去了解就非常困难(上层使用越简单、底层封装得就越复杂)
源码缺点:由于spring大而全(要集成这么多框架、提供非常非常多的扩展点,经过十多年的代码迭代)代码量非常庞大,一百多万对于去深入学习源码带来了一定困难。
Spring明明一个很轻量级的框架,却给人感觉大而全使用门槛升高,入门Spring需要较长时间.