很多公司再面试的时候都会问到: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部分或全部。