Spring基础介绍

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、付费专栏及课程。

余额充值