一、Spring Framework
1.1、概述
- Spring是一个轻量级的开源的JavaEE框架;
- Spring可以解决企业应用开发的复杂性;
- Spring有两个核心部分:IOC和AOP
① IOC:控制反转,把创建对象的过程交给Spring进行管理;
② AOP:面向切面编程,即:在不修改源代码的情况下进行功能增强;- Spring特点:
① 方便解耦、简化开发(AOP实现);
② AOP编程支持;
③ 方便程序测试(Spring整合Junit单元测试);
④ 方便和其他框架进行整合(整合JdbcTemplate、整合MyBatis、整合Redis...);
⑤ 方便进行事务操作(声明式事务【xml方式】、声明式事务【注解方式】);
⑥ 降低API开发难度(IOC实现);
1.2、谈谈你对Spring的理解(面试)
Spring是一个生态,是一个轻量级的开源容器框架,可以构建Java应用所需要的一切基础设施,它的出现是为了解决企业级应用开发中业务逻辑层和其他各层对象与对象之间耦合的问题,通常情况下所说的Spring是指Spring Framework。
1.3、 Spring的优缺点是什么(面试)
优点:
① 集中管理对象,降低对象和对象之间的耦合性,方便维护对象;
② 在不修改代码的情况下可以对业务代码进行增强,减少重复代码,提高开发效率,方便维护;
③ 提高开发效率,只需要一个@Transactional注解,即可完成事务管理;
④ Spring实现了测试,使我们可以结合Junit非常方便的测试Spring Bean、SpringMVC;
⑤ 拥有非常强大的粘合度,集成能力非常强,只需要简单的配置就可以集成第三方框架;
⑥ 简化开发,帮我们封装了很多功能性的代码
⑦ Spring的底层大量使用了反射、设计模式等技术,提供了非常多的扩展接口供外部进行扩展,很值得我们去学习;缺点:
① 从应用层方面来讲Spring是没有缺点的;
② Spring简化了我们的日常开发,但是如果我们想要深入到底层去了解的话就非常困难(上层使用越简单,底层封装的就越复杂);
③ 源码缺点:由于Spring大而全,代码量非常庞大(100多万行代码),对于去深入学习研究带来了一定的困难;