美文网首页面试题
Java面试经典题目三(spring基础知识)

Java面试经典题目三(spring基础知识)

作者: chansonpro | 来源:发表于2017-12-27 16:56 被阅读22次

    【1】spring中ioc和aop?

    答:AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。

    详细参考

    【2】spring mvc框架的流程?

    答:springmvc是一个基于mvc的web框架。架构原理如下:

    步骤:

    1.发起请求到前端控制器(DispatcherServlet)

    2.前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解查找

    3.处理器映射器HandlerMapping向前端控制器返回Handler

    4.前端控制器调用处理器去执行Handler

    5.处理器适配器去执行Handler

    6.Handler执行完成给适配器返回ModelAndView

    7.处理器适配器向前端控制器返回 ModelAndView( ModelAndView 是springMVC的底层的对象,包括model和view)

    8.前端控制器请求视图解析器去进行视图解析,根据逻辑视图解析成真正的试图(jsp)

    9.视图解析器向前端控制器返回view

    10.前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域

    11.前端控制器向用户响应结果。

    组件:

    [1]前端控制器(DispatcherServlet)(不需要程序员开发,里面没有业务逻辑)

    作用是:接收请求,响应结果,相当于转发器,中央处理器,有了DispatcherServlet,降低了其他组件之间的耦合度。

    [2]处理器映射器HandlerMapping(不需要程序员开发)

    作用:根据请求的url查找Handler

    [3]处理器适配器HandlerAdapter

    作用:按照特定规则( HandlerAdapter )去执行Handler

    [4]处理器Handler(需要程序员去编写)

    注意:编写Handler时候,按照HandlerAdapter的要求去做,这样适配器才可以正确执行Handler

    [5]视图解析器View resolver(不需要程序员开发)

    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

    [6]视图view(需要程序员开发jsp)

    view是一个接口,实现类支持不同的view类型(jsp、freemarker、pdf……)

    3】SpringMVC、Tomcat怎样完成一次Http请求的?

    答:先看下Tomcat和springMVC各自职责:

    The Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.

    SpringMVC:Spring推出的基于Servlet标准的MVC框架实现。

    两者的交集(或者说结合点)就是servlet。其中springmvc的DispatcherServlet实现了httpservlet,在tomcat看来,springMVC就是一个servlet。

    二者的工作原理如下:

    1.Tomcat:

    tomcat作为servlet容器,可以作为web服务器直接使用,负责接收和返回HTTP请求。流程框图如下:

    更加详细的时序图如下所示:

    流程梳理:

    1.首先,WebClient向Servlet容器(tomcat)发送http请求;

    2.Servlet容器接收到请求,分析请求信息;

    3.Servlet容器此时会创建一个HttpRequest对象,将客户请求的信息封装到HttpRequest对象中;

    4.Servlet继续创建对象HttpResponse对象

    5.Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象和HttpResponse对象作为参数传递给HttpServlet

    6.HttpServlet调用HttpRequest对象的有关方法,获取http请求信息

    7. HttpServlet调用HttpResponnse对象的有关方法,生成响应数据

    8.servlet容器将HttpServlet的响应结果返回给client

    tomcat下的servlet的配置文件在web.xml中,文件中配置了http与servlet的映射关系、filter、context等参数,通过这样的配置,tomcat可以把http的请求映射到不同的servlet实例中去。

    2.SpringMVC

    springMVC也是servlet的实现,只不过springmvc增加了一个DispatchServlet,所有的http请求都会映射到Servlet上,请求进入到这个Servlet中之后,就算进入到了框架之中了,由这个Servlet来统一的分配http请求到各个Controller。具体架构参考上文。

    【4】spring中的事务是如何保证一致性?

    答:

    相关文章

      网友评论

        本文标题:Java面试经典题目三(spring基础知识)

        本文链接:https://www.haomeiwen.com/subject/ibwugxtx.html