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

【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中的事务是如何保证一致性?

答:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容