springmvc工作原理是什么?springmvc怎么进行单元测试?

阳光 2021-11-29 15:21:28 java常见问答 9467

Spring MVC框架是一个基于请求驱动的Web框架,它使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器进行处理。那springmvc工作原理是什么?下面来我们就来给大家讲解一下。

简单来说:客户端发送请求-> 前端控制器 DispatcherServlet 接受客户端请求 -> 找到处理器映射 HandlerMapping 解析请求对应的 Handler-> HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑 -> 处理器返回一个模型视图 ModelAndView -> 视图解析器进行解析 -> 返回一个视图对象->前端控制器 DispatcherServlet 渲染数据(Moder)->将得到视图对象返回给用户

如下图所示:

springmvc工作原理是什么?springmvc怎么进行单元测试?.jpg

上图的一个笔误的小问题:Spring MVC 的入口函数也就是前端控制器 DispatcherServlet 的作用是接收请求,响应结果。

流程说明(重要):

(1)客户端(浏览器)发送请求,直接请求到 DispatcherServlet。

(2)DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler。

(3)解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter 适配器处理。

(4)HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑。

(5)处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。

(6)ViewResolver 会根据逻辑 View 查找实际的 View。

(7)DispaterServlet 把返回的 Model 传给 View(视图渲染)。

(8)把 View 返回给请求者(浏览器)

springmvc怎么进行单元测试?

关于Spring MVC Controller 层的单元测试

测试准备工作:

1、搭建测试Web环境

@RunWith(UnitilsJUnit4TestClassRunner.class)
@SpringApplicationContext(
{
    "classpath:*.xml"
    , "file:src/main/webapp/WEB-INF/spring-configuration/*.xml"
    , "file:src/main/webapp/WEB-INF/*.xml"
})

2、注入Controller 类

@Controller
BeanController controller;

3、编写测试数据

测试数据的文件名一定要与测试类的文件名相同,比如测试数据BeanControllerTest.xml ,测试类 BeanControllerTest。

4、注入测试数据

@Test
@DataSet
public void testBean(){}

我们一定要掌握springmvc的工作原理,springmvc框架的目的就是帮助我们简化开发,并且Spring MVC 是 Spring 产品组合的一部分,它享有 Spring IoC容器紧密结合Spring松耦合等特点,因此它有Spring的所有优点。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java面试中有哪些锁?Java锁面试题有哪些?

java编程的开头格式是怎样的?java编程代码要注意哪些关键点?

Java数据库的主键和外键是什么?数据库怎么理解?