面试官此问题的目的是了解求职者对Spring相关技术的理解,在回答此问题时注意简单扼要及语言组织的条理性:
1、回答Spring的核心作用(描述Spring框架特点和作用)
Spring是一个开源的轻量级框架,为解决软件开发的复杂性而生,基于核心的IoC和AOP思想实现项目开发的模块化,贯穿项目的表现层、逻辑层及持久层,减低项目模块之间的耦合度,提高复用率。
2、回答Spring核心思想IoC和AOP的实现原理及作用(体现对Spring的深入理解)
Spring的两大核心思想分别是控制反转(IoC)和面向切面编程(AOP);
IoC是基于反射的实现,通过Spring容器管理对象自创建到销毁的整个生命周期,例如完成控制器对象创建、JavaBean对象创建及属性注入等工作;
AOP是基于反射和代理的实现,在不改变原有工作流的前提下实现自定义逻辑的切入工作,可以大大减低耦合度提交代码复用率,例如在项目开发中完成持久层事务管理、日志管理等工作。
3、回答Spring家族产品的相关产品及功能(体现多“Spring全家桶”的全面认知)
除此之外,Spring经过多件的发展已经形成了一个家族,几乎可以完成一个Java开发的全面需求;
SpringMVC,Spring框架提供的MVC模块,实现视图层、控制层及模型层的分离,更容易对各层进行控制,成为了目前JavaWeb项目中的核心MVC框架;
SpringBoot,是由Pivotal团队提供的全新框架,用来简化新的Spring应用的搭建及开发过程,成为了快速应用开发领域的领导者。
(备注:此处如果多Spring的其他家族产品有更多的了解可以加以缀述,如果多这些产品没有深入的认知,可以不用描述,以免面试官追问)。