精华内容
下载资源
问答
  • SpringMVC的简介和工作流程

    万次阅读 多人点赞 2019-04-08 17:15:16
    一、简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块...二、工作流程 1、用户发送请求至前端控制器DispatcherServlet。...

    一、简介

        Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)

    二、工作流程

    1、用户发送请求至前端控制器DispatcherServlet。

    2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    4、 DispatcherServlet调用HandlerAdapter处理器适配器。

    5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

    6、Controller执行完成返回ModelAndView。

    7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

    8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

    9、ViewReslover解析后返回具体View.

    10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 

    11、DispatcherServlet响应用户。

    三、理解

    1、为什么要使用springMVC?

        SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化日常Web开发。(处理业务数据的对象和显示业务数据的视图之间存在紧密耦合)

    2、什么是MVC设计模式?

        MVC即Model-View-Controller,将应用按照Model(模型)、View(视图)、Controller(控制)这样的方式分离。

        视图(View):代表用户交互界面,对于Web应用来说,可以是HTML,也可能是jsp、XML和Applet等。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。

        模型(Model):是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只是组织管理这些模型,以便于模型的重构和提高重用性。

        控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。

    3、SpringMVC的特点

    • 清晰的角色划分:控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(formobject)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resolver)等。每一个角色都可以由一个专门的对象来实现。
    • 强大而直接的配置方式:将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器(validator)的引用。
    • 可适配、非侵入:可以根据不同的应用场景,选择合适的控制器子类 (simple型、command型、form型、wizard型、multi-action型或者自定义),而不是从单一控制器 (比如Action/ActionForm)继承。
    • 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。
    • 可定制的绑定(binding) 和验证(validation):比如将类型不匹配作为应用级的验证错误, 这可以保存错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象,需要手动解析它并转换到业务对象。
    • 可定制的handlermapping和view resolution:Spring提供从最简单的URL映射, 到复杂的、专用的定制策略。与某些webMVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。
    • 灵活的model转换:在Springweb框架中,使用基于Map的 键/值对来达到轻易地与各种视图技术的集成。
    • 可定制的本地化和主题(theme)解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等。
    • 简单而强大的JSP标签库(SpringTag Library):支持包括诸如数据绑定和主题(theme) 之类的许多功能。
    • JSP表单标签库:在Spring2.0中引入的表单标签库,使得在JSP中编写 表单更加容易。
    • Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session。

    4、SpringMVC的优点

    • 让我们能非常简单的设计出干净的Web层和薄薄的Web层
    • 进行更简洁的Web层的开发
    • 天生与Spring框架集成(如IoC容器、AOP等)
    • 提供强大的约定大于配置的契约式编程支持
    • 非常灵活的数据验证、格式化和数据绑定机制
    • 支持Restful风格

    5、SpringMVC的入门程序

    web.xml

    <web-app>
        <servlet>
            <!-- 加载前端控制器 -->
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 
      	       加载配置文件
      	       默认加载规范:
      	       * 文件命名:servlet-name-servlet.xml====springmvc-servlet.xml
      	       * 路径规范:必须在WEB-INF目录下面
      	       修改加载路径:
            -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>   
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>

    springmvc.xml

    <beans>
    	<!-- 配置映射处理器:根据bean(自定义Controller)的name属性的url去寻找handler;springmvc默认的映射处理器是BeanNameUrlHandlerMapping-->
    	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    	
    	<!-- 配置处理器适配器来执行Controller ,springmvc默认的是SimpleControllerHandlerAdapter
    	-->
    	<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    	
    	<!-- 配置自定义Controller -->
    	<bean id="myController" name="/hello.do" class="org.controller.MyController"></bean>
    	
    	<!-- 配置sprigmvc视图解析器:解析逻辑视图; 
    		后台返回逻辑视图:index
    		视图解析器解析出真正物理视图:前缀+逻辑视图+后缀====/WEB-INF/jsps/index.jsp
    	-->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/WEB-INF/jsps/"></property>
    		<property name="suffix" value=".jsp"></property>		
    	</bean>
    </beans>
    

    自定义处理器

    public class MyController implements Controller{
    
    	public ModelAndView handleRequest(HttpServletRequest arg0,
    			HttpServletResponse arg1) throws Exception {
    		ModelAndView mv = new ModelAndView();
    		//设置页面回显数据
    		mv.addObject("hello", "欢迎学习springmvc!");
    		
    		//返回物理视图
    		//mv.setViewName("/WEB-INF/jsps/index.jsp");
    		
    		//返回逻辑视图
    		mv.setViewName("index");
    		return mv;
    	}
    }
    

    6、SpringMVC常用注解及其作用

    @Controller:标识这个类是一个控制器

    @RequestMapping:给控制器方法绑定一个uri

    @ResponseBody:将java对象转成json,并且发送给客户端

    @RequestBody:将客户端请求过来的json转成java对象

    @RequestParam:当表单参数和方法形参名字不一致时,做一个名字映射

    @PathVarible:用于获取uri中的参数,比如user/1中1的值

    Rest风格的新api

    @RestController相当于@Controller+ @ResponseBody

    @GetMapping@DeleteMapping@PostMapping@PutMapping

    其他注解

    @SessionAttribute:声明将什么模型数据存入session

    @CookieValue:获取cookie值

    @ModelAttribute:将方法返回值存入model中

    @HeaderValue:获取请求头中的值

    7、SpringMVC和Struts2的对比

    框架机制:SpringMVC的入口是servlet,而Struts2是filter。

    Filter在容器启动后就初始化,服务停止后销毁,晚于Servlet;Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁。

    拦截机制

        Struts2:1、Struts2框架是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域是原型模式prototype(否则会出现线程并发问题),然后通过setter,getter吧request数据注入到属性;

        2、一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,说明属性参数是让多个方法共享的;

        3、Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

        SpringMVC:1、SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架;
        2、在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改;

    Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式,这样导致Struts2的配置文件量还是比SpringMVC大。

    性能方面:SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以,SpringMVC开发效率和性能高于Struts2。

    配置方面:spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少);
    SpringMVC可以认为已经100%零配置。

    设计思想:Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

    集成方面:SpringMVC集成了Ajax。

    注意:springmvc是单例模式的框架,但它是线程安全的,因为springmvc没有成员变量,所有参数的封装都是基于方法的,属于当前线程的私有变量. 因此是线程安全的框架。所以效率高。

    struts action是多例的。所以可以使用成员变量获取参数。所以效率低。

    展开全文
  • 太强了, SecondaryNameNode 的工作流程

    万次阅读 多人点赞 2021-03-08 12:34:06
    介绍了 SecondaryNameNode 的工作流程( fsimage 与 edits 文件的合并),以及 检查点 的相关知识,方便了解 NameNode 与 SecondaryNameNode 之间的关系。

    一个文件存储在哪个 DataNode 节点的哪个位置的元数据信息(metadata)上,是由 NameNode 节点决定的。随着存储文件的增多, NameNode 节点上存储的信息也会越来越多。因此,HDFS定义了一个 第二名称节点(SecondaryNameNode) ,用来及时更新这些metadata。

    HDFS是一个分布式文件存储系统,文件分布式存储在多个 DataNode 节点上。

    一、 SecondaryNameNode节点合并过程

    fsimage 与 edits 文件合并的过程如下:
    在这里插入图片描述

    ⑴ SecondaryNameNode 节点会定期与 NameNode 节点通信,请求其停止使用 edits 文件,暂时将新的更新操作写到一个新的 edits.new 文件上(这个操作是瞬间完成的)。

    简述:将 HDFS 更新记录写入一个新的文件—— edits.new 。


    ⑵ SecondaryNameNode 节点通过 HTTP GET 方式从 NameNode 节点上获取 fsimage 和 edits 文件,并下载到本地的相应目录下。

    简述:将 fsimage 和 editlog 文件通过 HTTP协议发送至 SecondaryNameNode 节点。


    ⑶ SecondaryNameNode 节点将下载下来的 fsimage 文件载入内存,然后执行 edits 文件中的各项更新操作,使内存中的 fsimage 文件保持最新 (这个过程就是将 edits 文件和 fsimage 文件合并)

    简述:将 fsimage 与 editlog 文件合并,生成一个新的文件—— fsimage.ckpt 。(这个过程比较耗时,所以要在 SecondaryNameNode 节点上进行。如果在 NameNode 节点中进行,可能会导致整个系统卡顿)

    ⑷ SecondaryNameNode 节点执行完 中的操作后,会通过 HTTP POST 方式将新的 fsimage 文件发送到 NameNode 节点上。

    简述:将生成的 fsimage.ckpt 文件,通过 HTTP协议发送至 NameNode 节点。


    ⑸ NameNode 节点用从 SecondaryNameNode 节点上接受到的新的 fsimage 文件,去替换旧的 fsimage 文件,同时将 edits.new 文件改名为 edits 。

    简述:将 fsimage.ckpt 文件重命名为 fsimage ,将 edits.new 文件重命名为 edits 。


    二、 检查点

    SecondaryNameNode节点 定期把NameNode的 fsimage 和 edits 下载到本地,再将它们加载到内存并进行合并,最后把合并后新的 fsimage 返回NameNode (这个过程称为 检查点 )。

    2.1 检查点合并的时间

    启动检查点进程由两个参数控制,触发检查点操作,只需达到以下任一条件:

    1. 每隔 60 分钟( 使用到参数 dfs.namenode.checkpoint.period );
    2. 当 edits 文件达到 100万条事务,默认值为 100万条 ( 使用到参数 dfs.namenode.checkpoint.txns )。

    2.2 检查点的作用

    检查点的作用 (即 合并 的作用),主要是为了 减少NameNode的启动时间

    如果想了解 HDFS 的组成架构,可以看看这篇文章:一文了解 HDFS 及其组成架构 。当然,如果想看看 HDFS 的工作机制是怎样的,可以参考这篇文章:图文详解 HDFS 工作机制


    如果文章对您有帮助,请点个,留给评论支持一下😊,若有疑问可以私信留言😉。如果能给个三连(点赞收藏关注 )就最好啦😁。

    展开全文
  • 软件测试工作流程概括与总结

    万次阅读 多人点赞 2018-08-08 23:37:45
    最近在为面试新工作做准备,所以想想整理一下软件测试的基本工作流程,大致梳理一遍,这样也便于自己在面试过程中可以沉着的面对面试管的测试工作如何进行的问题。 首先,作为测试人员需要学习并了解业务,分析需求...

    最近在为面试新工作做准备,所以想想整理一下软件测试的基本工作流程,大致梳理一遍,这样也便于自己在面试过程中可以沉着的面对面试管的测试工作如何进行的问题。

    首先,作为测试人员需要学习并了解业务,分析需求点

    为什么测试人员要参加需求分析?也就是进行测试需求分析的目的是什么?

    第一、把用户需求转化为功能需求:1)对测试范围进度量    2)对处理分支进行度量   3)对需求业务的场景进行度量   4)明确其功能对应的输入、处理和输出   5)把隐式需求转变为明确。

    第二、明确测试活动的五个要素:测试需求是什么、决定怎么测试、明确测试时间、确定测试人员、确定测试环境:测试中需要的技能,工具以及相应的背景知识,测试过程中可能遇到的风险等等。测试需求需要做到尽可能的详细明确,以避免测试遗漏和误解。

    怎么进行测试需求分析?

    第一、确认功能(业务功能、辅助功能、数据约束、易用性需求、编辑约束、参数需求、权限需求、性能约束):

    1、业务功能:与用户实际业务直接相关的功能或者细节

    2、辅助功能:辅助完成业务功能的一些功能或者细节,例如:设置过滤条件

    3、数据约束:功能的细节,主要是用于控制在执行功能时,数据的显示范围,数据之间的关系等

    4、易用性需求:功能的细节,产品中必须提供,便于功能操作使用的一些细节,例如:快捷键等

    5、编辑约束:功能的细节,在功能执行时,对输入数据项目的一些约束条件,例如:只能输入数字等

    6、参数需求:功能的细节,在功能执行时,需要根据参数设置不同,进行不同处理的细节

    7、权限需求:功能的细节,在功能执行的过程,根据不同的权限进行不同的处理,不包括直接限制某个功能的权限

    8、性能约束:功能的细节,执行功能时,必须满足的性能需求

    第二、场景分析

    1、考虑场景的调用者:考虑每一个场景提供的服务是供哪些外部模块或者系统调用的,找出所有调用者。调用前提,约束都要考虑。每一个调用都可以考虑成一个大的业务流程(一般和外部有交互的业务出错率比较大,需要重点关注)

    2考虑系统内部各个场景之间的:形成内部业务流程,需要分析每个场景之间的约束关系,执行条件,组织出各种业务流程图

    第三、挖掘隐性需求

    这需要测试工程师的经验积累:1)常用的或者规定的业务流程   2)各个业务流程分支的遍历   3)明确规定不可使用的业务流程   4)没有明确规定但是应该不可使用的业务流程   5)其他异常或者不符合规定的操作

    以上是粗略的讲解了如何进行测试需求分析,详细的测试需求方法可以参考《软件测试需求分析方法》这篇博客。在需求分析过程中编写整个测试计划,在这个过程中需要参考需求规格说明书,这个阶段一般情况下是测试主管编写的。包括测试人员,测试时间,测试工具,以及测试方法等。这是在测试需求分析中的产物《测试计划》,如何编写测试计划,请参考以下文章《如何编写一个好的测试计划》

    接下来就是测试用例设计:

    测试用例是测试工作的最核心的模块,在执行任何测试之前,首先必须完成测试用例的编写。测试用例是指导你执行测试,帮助证明软件功能或发现软件缺陷的一种说明。用例设计好后进行审核。这个地方该讲的东西就多了,如何设计测试用例,设计测试用的方法,怎么进行测试用例的审核等等。

    第一、如何进行测试用例的设计

    编写测试用例之前我们需要对项目的需求有清晰的了解,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数,作为测试用例的编写者不仅了解要有常见的测试用例编写方法,同时需要了解被测软件的设计、功能规格说明、用户试用场景以及程序/模块的结构。

    步骤:

    1、测试需求分析:从项目部拿到软件的需求规格说明书后,开始对项目的需求进行分析,通过自己的分析、理解,整理成为测试需求, 清楚分析出被测试对象具有哪些功能。 明确测试用例中的测试集用例与需求的关系,即一个或多个测试用例集对应一个测试需求。

    2、业务流程分析:分析完需求后,明确每一个功能的业务处理流程,不同的功能点作业务的组合,以及项目的隐式需求。如遇复杂的测试用例设计前,先画出软件的业务流程。从业务流程上,应得到以下信息:

    A、 主流程是什么?

    B、 条件备选流程是什么?

    C、 数据流向是什么?

    D、 关键的判断条件是什么?

    3、测试用例设计

    完成以上两步则可进行测试用例设计,功能测试用例,应尽量考虑边界、异常、性能的情况,以便发现更多的隐藏问题。设计测试用例的常见方法:1)等价类    2)边界值    3)因果图    4) 判定表    5) 状态迁移    6) 正交实验    7) 场景法    8) 错误推断(注意:编写测试用例时,我们尽可能取的不应该是有效等价类而应该是无效等价类

    4.编写完成后自我检查以及部门内部评审:

    1)测试用例本身的描述是否清晰,语言准确;是否存在二义性;

    2)测试用例内容是否完整,是否清晰的包含输入和预期输出的结果;测试步骤是否清晰;

    3)测试用例中使用的测试数据是否恰当,准确;

    4)测试用例是否具有指导性,是否能灵活的指导软件测试工程师通过测试用例发现更多的缺陷,而不是限制他们的思维;

    5)是否考虑到测试用例执行的效率。对于不断重复执行的步骤,是否保证了验证点相同;或者测试用例的设计是否存在冗余性等。这些都可能导致测试用例执行效率低下;

    6)画出软件需求跟踪矩阵,验证测试用例是否完全覆盖了需求,验证测试用例的覆盖性;

    7)测试用例是否完全遵守了软件需求的规定。这一点其实有一些难做到。考虑到时间/成本的关系,应该视具体情况而定。

    具体详细内容可参考《如何有效的进行测试用例评审》

    5.测试用例更新完善

    测试用例编写完成之后需要不断完善,如遇需求更改或功能新增时,测试用例必须配套修改更新,同时在测试过程中发现设计测试用例时考虑不周,需要对测试用例进行修改完善;在软件交付使用后客户反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成,也需要对测试用例进行完善。

    紧接着就是在测试过程中占很大一部分比重得测试用例执行过程

    首先搭建测试环境,准备好测试数据,进行预测,预测通过之后,按照测试用例进入正式测试,有效的测试执行可以将测试用例发挥最大的价值。因此,测试用例规范执行有助于更好的发现代码中存在的缺陷。根据个人测试工作经验,好的测试执行应该包含如下内容:

    1、测试执行中评估测试执行时间不足,需及时上报风险。满足质量优先,进度其次原则。

    2、测试用例按优先级顺序执行,通常是基本、详细和异常顺序执行。

    3、未执行用例、标志为删除或者无效的用例,需注明原因。

    4、执行过程中有疑问的测试用例(场景、操作步骤、检查点等)需找测试设计人员澄清。

    5、测试执行需对用例描述的检查点逐一检查,避免遗漏。

    6、重视不易重现的缺陷场景,可能是一个bug。

    7、执行过程中发现有前期设计遗漏用例需补充到用例文档并执行验证。

    8、建议测试人员交叉执行重复测试用例,用例执行对相同测试人员有免疫性。避免可能的缺陷一直遗漏到现网。

    9、如有需要,建议保留测试结果,结果可视。也便于不同版本间的测试结果对比。

    10、已确认问题需及时按照问题单提单要求(规范和缺陷定级)提单。

    11、跟踪问题单修复情况并回归验证问题单。

    12、每轮次测试结束,find一下是否有core文件产生。

    13、测试结束,将最终测试用例文档上传到归档目录,实现用例重用。

    以上是争对一般的软件测试流程,如果是自动化测试得话,应该还有根据测试用例进行脚本编写,运行脚本等。此处可能写的不详细,希望大家可以再下方评论让我完善。

    在测试用例执行过程中,包含了:功能测试阶段、缺陷跟踪阶段(bug tracking)、回归测试阶段、系统测试阶段、验收测试阶段等(系统已满足测试条件(开发完成),按照已经评审过的测试用例依次执行,执行过程中及时记录问题,将问题及时提交到QC上,要跟踪缺陷。等开发修复后进行回归测试,确认修复后关闭缺陷,如果说该问题要更新而生产上未进行验证,就把缺陷状态改为生产未验证。对有异议的缺陷经甲方、开发和测试三方进行沟通讨论,由甲方最终确定处理方式。在测试过程中也会碰到对需求有异议,会反馈给经理,由经理与甲方沟通来对该需求提出一些可行性建议,最终还是由甲方来确定具体根据各个公司的业务流程而不一样)。

    最后已达到准出要求的根据测试情况写测试报告,对整个测试过程和版本的质量做一个评估

    测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。测试报告是测试阶段最后的文档产出物。优秀的测试经理或测试人员应该具备良好的文档编写能力,一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。

    测试报告的内容可以总结为以下目录:

    •  首页
    •  引言(目的、背景、缩略语、参考文献)
    •  测试概要(测试方法、范围、测试环境、工具)
    •  测试结果与缺陷分析(功能、性能)
    •  测试结论与建议(项目概况、测试时间 测试情况、结论性能汇总)
    •  附录(缺陷统计)

     

    至此并不算最后的完结工作,软件测试还包含了线上功能检查、当前版本问题反馈以及改进建议 等。这样才算是软件测试最终结束,软件测试是贯穿于整个软件生命周期的。

     

    小生不才还望大家多多包涵,此文章是用来帮助自己应付面试用的,大家多多提意见,完善该文章。

    最后祝大家和自己,能够有所收获,面试顺利(Interview success)。

     

    展开全文
  • SpringMVC工作流程

    万次阅读 2019-08-06 10:10:35
    SpringMVC工作流程解析

    在使用了SpringBoot之后,由于SpringBoot内部有很多的xxxAutoConfigurationxxxProperties导致我们弱化了对很多框架的理解,在面试中SpringMVC几乎是必问的题目。

    SpringMVC的工作流程
    SpringMVC的工作流程

    1. 客户端发送请求至前端控制器DispatcherServlet接收请求
    2. DispatcherServlet收到请求并调用HandlerMapping处理映射器
    3. HandlerMapping通过系统或者自定义的映射器配置找到对应的处理器handler,生成HandlerExecutionChain{handler(处理器对象)、HandlerInterceptor(处理拦截器)}返回给DispatcherServlet
    4. DispatcherServlet调用HandlerAdapter处理适配器
    5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器),Controller执行完成后返回ModelAndViewHandlerAdapter将执行结果ModelAndView返回给DispatcherServlet
    6. DispatcherServletModelAndView传给视图解析器ViewResolverViewResolver解析后返回具体的ViewDispatcherServlet根据View进行渲染视图,DIspatcherServlet响应客户端
    展开全文
  • 驱动程序module的工作流程

    千次阅读 2014-09-05 15:40:45
    驱动程序module的工作流程主要分为四个部分: 1、 insmod module 2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用) 3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数...
  • MapReduce工作流程原理 Map的输出 是key,value的 list Reduce的输入是key。value的list MapReduce核心思想 分而治之,先分后和(只有一个模型) Map负责数据拆分 map: [k1,v1] → [(k2,v2)] Reduce负责数据合并 ...
  • cookie工作流程

    千次阅读 2020-07-08 16:34:14
    cookie 工作流程 cookie和tooken很像,tooken的工作流程如下: cookie的工作流程如下: cookie和session的区别: cookie工作流程 // 1. 导包 const express = require("express"); // 2. 创建服务器 const app = ...
  • SpringMVC框架工作流程图及工作原理

    万次阅读 多人点赞 2018-07-10 09:13:39
    SpringMVC框架的工作原理图:SpringMVC的具体工作原理1、客户端用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、HandlerMapping处理器映射器找到具体...
  • UE工作流程

    千次阅读 2015-04-20 13:28:06
    一、 编写目的界面的质量要靠所有环节的人员来保证... 二、 适用人员UE员工三、 部门工作流程 以下是文字说明 1. 第一步交互设计 交互人员根据需求规格说明书(需求人员提供)的内容进行界面交互稿的制作。 交互人
  • Maven工作流程

    千次阅读 2015-12-28 16:54:36
    Maven工作流程Maven的设计哲学是Convention over configuration(惯例先于配置)。在设计之初,Maven就确定了三个常见的工作流程,流程固定,流程节点可配置。总体的架构Maven的工作流程分三层:lifecycle(流程),...
  • Jenkins之工作流程原理

    千次阅读 2020-02-17 12:41:10
    Jenkins之工作流程原理
  • Git 工作流程

    万次阅读 2018-04-13 18:21:18
    协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。"工作流程"在英语里,叫做"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、自然地向前...
  • J2EE进阶(六)SSH框架工作流程项目整合实例讲解请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程。 首先查看一下客户端的请求信息:对于一个Web项目,项目发布后,服务端...
  • Hadoop之MapReduce工作流程

    千次阅读 2019-06-10 09:59:21
    Hadoop之MapReduce工作流程 目录 流程示意图 流程详解 注意 1. 流程示意图 MapReduce工作流程 流程示意图,如下图 2. 流程详解 上面的流程是整个mapreduce最全工作流程,但是shuffle过程只是从第7步开始到第...
  • zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.   环境: 主机:WIN7 开发环境:IAR8.10.3 MCU:CC2530 示例程序:SampleApp ...
  • PHP脚本程序工作流程

    千次阅读 2019-05-10 10:59:12
    运行PHP脚本程序,必须借助PHP预处理器、WEB服务器和WEB浏览器,必要时还需借助数据库服务器。其中WEB服务器的功能是解析HTTP,PHP预处理器的功能是解释PHP代码,WEB浏览器的功能是显示PHP程序的执行结果,数据库...
  • MapReduce执行流程 第一步:InputFormat InputFormat 在HDFS文件系统中读取要进行计算的数据 输出给Split 第二步:Split Split 将数据进行逻辑切分,切分成多个任务。 输出给RR 第三步:RR RR 将切分...
  • Gitlab工作流程概述

    千次阅读 2019-03-01 20:11:50
    Gitlab工作流程概述 Gitlab是一个基于Git且功能强大的软件开发应用程序。 通过友好的人机界面,GitLab能够显著地提升整个开发团队的工作效率。 GitLab WorkFlow是GitLab推荐的工作流程。通过使用GitLab ...
  • servlet工作流程

    千次阅读 2019-04-01 16:48:13
    如图所示即为Servlet的一般工作流程。 流程如下: 1)Web客户向Servlet容器(tomcat)发出Http请求; 2)Servlet容器解析Web客户的Http请求; 3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http...
  • 乙方工作流程

    千次阅读 2011-05-24 23:30:00
    乙方工作流程
  • Mapreduce工作流程与简介

    千次阅读 2019-06-14 14:43:49
    最近几天一直在学习关于大数据方面的相关技术,今天学习了MapReduce的工作流程,让我对数据地处理有了新的认识,接下来我分享一下关于MapReduce2.0的工作流程 Mapreduce简介 Hadoop MapReduce 源于Google发表的 ...
  • TCP、UDP的C/S程序工作流程,原理

    千次阅读 2013-10-13 00:12:04
    TCP、UDP的C/S程序工作流程   一、面向连接的C/S程序工作流程(TCP): 服务器端工作流程 u 使用WSAStartup()函数检查系统协议栈安装情况 u 使用socket()函数创建服务器端通信套接口 u 使用bind()函数将创建...
  • 机器学习工作流程

    千次阅读 2020-05-02 18:11:46
    一、什么是机器学习 二、机器学习工作流程
  • TCP/IP协议工作原理和工作流程

    千次阅读 2020-10-29 20:05:47
    3 工作流程 4 数据传输全流程 4.0 物理介质 4.1 应用层 4.2 传输层 TCP连接的建立(三次握手) TCP连接的释放(四次挥手) 传输层作用 4.3 网络层 4.4 网络接口层 4.5 全流程总结 5 常见问题 1 什么是...
  • 公司工作流程开发培训

    万次阅读 2018-08-29 16:35:18
    开发工作流程 敏捷方式 项目启动:一个新的系统需要开发。 页面设计:产品通过页面或原型设计把需求定义清晰。 参与人员功能讨论:完成页面以后,所有开发人员需要参与沟通,将所有功能确认,并保证技术可以...
  • Mapreduce基本工作流程

    千次阅读 2017-09-28 07:36:52
    Mapreduce基本工作流程
  • GooFlow .net 工作流程图 jquery 流程 mvc

    千次阅读 2017-08-22 15:05:02
    最近做项目要弄工作流程 要找一个流程控件,现在比较好的就是GooFlow 网上有些列子,大部分都不太完全 看我的 左边就是流程图的一些图标 开始,结束等节点,线条可以直接吸附, 就是画完流程图之后,点击保存就把...
  • 程序运行时硬件的工作流程

    千次阅读 2018-11-29 13:22:05
    #以Linux系统为例 ...3.内存中的程序代码数据执行后会传至寄存器,再由寄存器传至ALU进行二进制流的计算,计算完毕返回至寄存器,最终由寄存器返回至显示器输出 总结:执行输入命令是有控制器走向CPU,再由CPU...
  • MR JOB提交到Yarn的工作流程Yarn的架构设计Yarn的工作流程(属于同种说法) 工作流程图: 用户向Yarn的RM提交应用程序,其中包括ApplicationMaster程序(应用程序的主程序),启动ApplicationMaster命令等 RM...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,818,857
精华内容 1,527,542
关键字:

工作流程