• 三、面试准备-框架知识


    0、什么是Spring

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

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

    AOP:

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

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

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

    IOC:

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

    Spring事务:

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

    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语句。

    4、Struts2相关知识点

    Struts2框架的核心配置文件就是struts.xml文件,该文件主要用来配置Action和请求之间的对应关系。Action映射就是将一个请求的URL映射到一个Action类,当一个请求匹配某个Action名称时,框架就使用这个映射来确定如何处理请求。

    Struts2框架要想执行,所有的请求都要都需要经过这个前端控制器(核心过滤器),所以要配置这个核心过滤器。在web.xml中配置。

    Struts2的执行流程:

    从客户端发送请求过来,先经过前端控制器/核心过滤器(StrutsPrepareAndExecuteFilter),拦截器执行完成以后,就会执行目标Action,在Action中返回一个结果视图,根据Struts.xml中的Result配置的页面进行页面的跳转。

    5、Hibernate工作原理及为什么要用?

    工作原理:

    1.读取并解析配置文件 
    2.读取并解析映射信息,创建SessionFactory 
    3.打开Sesssion 
    4.创建事务Transation 
    5.持久化操作 
    6.提交事务 
    7.关闭Session 
    8.关闭SesstionFactory

    为什么要用:

    1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

    2、hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系

    6、JDBC hibernate 和 ibatis 的区别

    jdbc:手动
    手动写sql
    delete、insert、update要将对象的值一个一个取出传到sql中,不能直接传入一个对象。
    select:返回的是一个resultset,要从ResultSet中一行一行、一个字段一个字段的取出,然后封装到一个对象中,不直接返回一个对象。
    ibatis的特点:半自动化
    sql要手动写
    delete、insert、update:直接传入一个对象
    select:直接返回一个对象
    hibernate:全自动
    不写sql,自动封装
    delete、insert、update:直接传入一个对象
    select:直接返回一个对象

    7、SpringBoot

    https://www.jianshu.com/p/63ad69c480fe/

  • 相关阅读:
    第 9 章
    第 8 章
    第 7 章
    第 6 章
    第 5 章
    第 4 章
    跳舞链解数独
    minic 类型声明与变量定义句型处理
    minic 动作句型处理
    minic 符号表
  • 原文地址:https://www.cnblogs.com/xiaolangzhong/p/10056500.html
Copyright © 2020-2023  润新知