不少公司再面试的时候都会问到:Spring是什么,都有哪些优势?面试
小博老师建议这两个问题能够这么回答:spring
1. Spring是一个轻量级的IoC和AOP容器框架。编程
IoC:当一个角色须要另一个角色协助的时候,在传统的程序设计中,一般由调用者来建立被调用者的实例。可是在spring中,建立被调用者将再也不由调用者内部完成,而是由Spring来完成,所以叫控制反转。在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,所以又叫依赖注入。框架
AOP:Spring对面向切面编程提供了强有力的支持,经过它让咱们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑,再也不负责其它系统问题(如日志、事务等)。设计
2. 优势日志
a. 使用Spring的IOC容器,将对象之间的依赖关系交给Spring,下降组件之间的耦合性,让咱们更专一于应用逻辑。对象
b. 能够提供众多服务,事务管理,WS等。事务
c. AOP的很好支持,方便面向切面编程。开发
d. 对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等程序设计
e. Spring DI机制下降了业务对象替换的复杂性。
f. Spring属于低侵入,代码污染极低。
g. Spring的高度可开放性,并不强制依赖于Spring,开发者能够自由选择Spring部分或所有。