三、面试准备-框架知识

0、什么是Spring

Spring从功能上来说确实是一个框架。但是从本质意义上来说,Spring是一个库,一个Java库。
Spring的功能是提供了一个软件框架,这个框架能使软件之间的逻辑更加清晰,配置更加灵活。

Spring有两个重要思想:AOP(面向切面)和IOC(依赖注入)。

AOP:

AOP在Java里是利用反射机制实现的。也可以认为是利用动态代理实现的。不过动态代理也是通过反射机制实现的。

AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程提取成一个横向的面。

写好一个通用的子流程,不用放到主流程中。在需要用到改子流程时,告诉Spring想要把这段代码加到什么地方,Spring就会帮你加过去。这样在写代码的时候就可以专注考虑主流程,使逻辑更清晰,编码更高效。

IOC:

当一个类的实例需要另一个类协助时,在传统的程序设计中,通常由调用者来创建被调用者的实例。现在,创建被调用者的工作不再由调用者来完成,创建被调用者的实例的工作由IOC容器来完成。因此叫控制反转。

Spring事务:

事务就是对一系列的数据库操作进行统一的提交或回滚操作,如果成功,则一起成功,如果中间有一条出现异常,则回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。

扫描二维码关注公众号,回复: 4339316 查看本文章

Spring中有自己的事务管理机制。可分为两类:编程式事务的和声明式事务。

Spring主要通过“声明式事务”的方式对事务进行管理,即在配置文件中进行声明,通过AOP将事务切面切入程序,能够减少代码量。

1、什么是MVC

MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开。将一个应用程序分为三个部分:Model,View,Controller。

Model(模型):业务逻辑、数据层
View(视图):表示层
Controller(控制器):接收请求==>调用模型==>根据结果派发页面并经过模型处理返回相应数据。

优点:
1、分工明确(开发人员可以只关注整个结构中的某一层):使用MVC可以把数据库开发、程序逻辑开发、页面开发分开。
2、低耦合(降低代码间的依赖程度):视图层和业务层分离。应用的业务流程或者业务规则改变只需要改动模型层。更改视图层不用更改模型层和控制器的代码。方便代码维护。
3、复用性高(利于各层逻辑的复用):比如 多个视图能共享一个模型。

缺点:
1、有时会导致级联的修改。这种修改尤其体现在自下而上的方向。如果在表示层中需要增加一个功能,为了保证其设计符合MVC结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。可以通过设计模式改善。
2、降低了系统的性能。如果不采用分层结构,很多业务可以直接访问数据库。采用MVC模式要通过中间层来完成。可以通过缓存机制改善。

2、SpringMVC工作原理

第一步:用户发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或注解进行查找

第三步:找到以后处理器映射器向前端控制器返回执行链(HandlerExecutionChain)

第四步:前端控制器调用处理器适配器(HandlerAdapter)去执行处理器

第五步:处理器执行完毕给处理器适配器返回ModelAndView

第六步:处理器适配器向前端控制器返回ModelAndView

第七步:前端控制器请求视图解析器(ViewResplver)进行视图解析

第八步:视图解析器向前端控制器返回View

第九步:前端控制器对视图进行渲染

第十步:前端控制器向用户响应结果

前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
处理器映射器(HandlerMappering):根据URL去查找处理器。
处理器(Handle):需要程序员去写代码处理逻辑。
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器。
视图解析器(ViewResplver):进行视图解析,对返回的字符串进行处理,可以解析成对应的页面。

3、简述Mybatis框架

Mybatis是支持订制化SQL、存储过程以及高级映射的持久层框架。

功能是:封装JDBC操作、利用反射实现Java类与SQL语句之间的相互转换。

Mybatis让程序员将主要精力放在SQL上,通过Mybatis提供的映射方式,自由灵活生成满足需要的SQL语句。

猜你喜欢

转载自www.cnblogs.com/xiaolangzhong/p/10056500.html
今日推荐