Spring 基础介绍

1、Spring MVC 简介 mvc 设计模式 MVC 设计不仅限于 Java Web 应用,还包括许多应用,比如前端、PHP、.NET 等 语言。之所以那么做的 根本原因在于各个模块的解耦。 MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责 。 模型:用于存储数据以及处理用户请求的业务逻辑。 视图:向控制器提交数据,显示模型中的数据。 控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给 哪个视图更新显示。 Spring MVC Spring MVC 实现了即用的 MVC 的核心概念。它为控制器和处理程序提供了大量与此模式相关 的功能。 并且当向 MVC 添加反转控制(Inversion of Control,IoC)时,它使应用程序高度 解耦,提供了通过简 单的配置更改即可动态更改组件的灵活性。 Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 、Velocity、themlefy 等。 Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP 技术,但教程中使 用的视图是 JSP。 本节主要介绍 Spring MVC 框架处理用户请求的完整流程和处理中包含的 4 个接口。 Spring MVC 初学重点掌握的 4 个接口

  1. DispatcherServlet Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将 请 求 分 发 给 Controller 之 前 需 要 借 助 Spring MVC 提供的 HandlerMapping 定位到具体的 Controller。
  2. HandlerMapping HandlerMapping 接口负责完成客户请求到 Controller 映射。
  3. Controller Controller 接口将处理用户请求,这和 Java Servlet 扮演的角色是一致的。 一旦 Controller 处理完 用户请求,将返 ModelAndView 对象给 DispatcherServlet 前端控 制器,ModelAndView 中包含了 模型(Model)和视图(View)。从宏观角度看 DispatcherServlet 是整个 Web 应用的控制器;从 微观考虑,Controller 是单个 Http 请求处理过程中的控制器, 而 ModelAndView 是 Http 请求过 程中返回的模型(Model)和视图(View)。
  4. ViewResolver ViewResolver 接口(视图解析器)在 Web 应用中负责查找 View 对象,从 而将相应结果渲染给用户。
    Spring MVC 的工作流程如下:
    在这里插入图片描述

2、Spring MVC 注解
1、@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个 SpringMVC Controller 对 象。通过 Spring 配置的注解扫描,将这个 bean 注册到 Springmvc 容器中。
2、@RequestMapping @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上, 表示类中的 所有响应请求的方法都是以该地址作为父路径,作用于方法上,表明该处理 器的请求地址=父路径+方法 上 url。
3、@RequestBody @RequestBody 用于读取 Request 请求的 body 部分数据,使用系 统默认 配置的 HttpMessageConverter 进行解析,然后把相应的数据绑定 到要返回的对象上 ,再把 HttpMessageConverter 返回的对象数据绑定到 controller 中方法的参数上。 现在更多 的是把一个 json 字符串转换成一个定义好映射关系的对象。
4、@ResponseBody ResponseBody 用于将 Controller 的方法返回的对象,通过适当的 HttpMessageConverter 转换为指定 格式后,写入到 Response 对象的 body 数据区。 现在主要用于 json 返回。
5、@RequestParam @RequestParam 主要用于在 SpringMVC 后 台 控 制 层 获 取 参 数 , 类 似 request.getParameter(“name”); @RequestParam 注解主要有 3 个参数: 1.value:参数名字,即入参的请求参数名字,如 value=“userName” 表示请求的参数区中 的名字为 userName 的参数的值将传入; 2.required:是否必须,默认是 true,表示请求中一定要有相应的参数,否则将报 404 错 误码; 3.defaultValue:默认值,表示如果请求中没有同名参数时的默认值, 默认值可以是 SpEL 表达式,如“#{systemProperties[‘java.vm.version’]}”。
6、@PathVariable @PathVariable 映射 URL 绑定的占位。带占位符的 URL 是 Spring3.0 新增的功能,主 要用于 RestFull 风 格的 URL 请求。 通过 @PathVariable 可以将 URL 中占位符参数绑 定到控制器处理方法的入参中:URL 中的 {xxx} 占位 符可以通过@PathVariable(“xxx “) 绑定到操作方法的入参中。
7、@ModelAttribute Controller 的所有方法在调用前,先执行此@ModelAttribute 方法,可用于注解和方法参 数中。 可以把这个@ModelAttribute 特性,应用在 BaseController 当中,所有的 Controller 继 承 BaseController , 即 可 实 现 在 调 用 Controller 时,先执行 @ModelAttribute 方法。
8、@RestController @RestController 注解就相当于@ResponseBody + @Controller 合在一起的作用。 使用 @RestController 注解 Controller,则 Controller 中的方法无法返回页面,配置的视图 解析器(如: InternalResourceViewResolver)不起作用,返回的内容就是 return 的 内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值