spring面试总结

spring 源码分析及知识点总结:https://www.jianshu.com/p/822b6803a6e1

1 Spring是什么?

是一个个轻量级的依赖注入和AOP容器框架

使用控制反转的方式,通过依赖注入来创建对象(将创建对象的方式反转了,由Spring创建对象,依赖注入到调用者程序中)

面向切面编程:将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑。

面向切面编程是面向对象编程的有力补充。面向对象编程是静态的抽象,AOP是动态的抽象,获得步骤之间的逻辑划分

Spring的容器,管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。

参考:Spring的优点和缺点

2 spring有什么优势?

1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

2.可以提供众多服务,事务管理,Web Service等。

3.AOP很好支持了面向切面编程。

4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等

5.Spring DI机制降低了业务对象替换的复杂性。

6.Spring属于低侵入,代码污染极低。

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

Spring缺点:

1.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
2.Spring不支持分布式,这也是EJB仍然在用的原因之一。

3 Spring MCV和Spring的区别?

Spring mvc类似于struts的一个MVC开框架,其实都是属于Spring,Spring mvc需要有spring的架包作为支撑才能跑起来。
SSM框架—Spring+SpringMVC+MyBatis

4 SpringMVC核心处理流程

SpringMVC核心处理流程

1、DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器

2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)

3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)

4、ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图

5、然后再将Model模型中的数据渲染到View上

这些过程都是以DispatcherServlet为中轴线进行的。


Boy-20180729

你可能感兴趣的:(spring面试总结)