SpringMVC的常用注解

这篇具有很好参考价值的文章主要介绍了SpringMVC的常用注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringMVC的常用注解

1、@Controller

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。

2、@RequestMapping

用于处理请求 url 映射的注解,可用于类或方法上。

 使用在类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
 使用在方法上: 请求 URL 的第二级访问目录 
属性:
1、name:相当于方法的注释,使方法更易理解
2、value:指定请求的实际地址
3、path:与value同义,两者都是用来作为映射使用的
4、method:指定请求的method类型, GET、POST、PUT、DELETE等
5、params:该属性指定,请求中必须包含params属性规定的参数时,才能执行该请求
6、headers:该属性指定,请求中必须包含某些指定的header值,才能够让该方法处理请求
7、consumes:指定处理请求的提交内容类型(Content-Type),例如:application/json、text/html时,才能够让该方法处理请求
8、produces:指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型,此外,produces属性还可以指定返回值的编码

3、@Resource和@Autowired

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

相同点:

两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

不同点:

@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。

@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。
@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。
如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。

4、@RequestParam

把请求中指定名称的参数给控制器中的形参赋值。

属性:
1、value:请求参数中的名称。
2、required:请求参数中是否必须提供此参数。 默认值:true。 表示必须提供,如果不提供将报错。 
3、defaultValue:默认值
使用场景:
1@RequestParam 只能用于接收 url 的传参?name=xxx
2、form表单的提交
例:
 @RequestMapping("/testRequestParam")
 public String testRequestParam(@RequestParam(value = "name",required = true,defaultValue = "李四") String username){
        System.out.println("username="+username);
        return "success";
    }

5、@RequestBody

  1. 用于获取请求体内容。 直接使用得到是 key=value&key=value…结构的字符串。
  2. 把获得json类型的数据转成pojo对象。
属性:

required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值为 false, get 请求得到是 null。

注:@RequestBody 不能使用get请求, 在Controller的方法参数里,有且只有一个

6、@ResponseBody

@ResponseBody用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如: json,xml 等,通过 Response 响应给客户端

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)

用法:
  • 在Controller类: 代表该Controller类中所有的方法都使用@ResponseBody,即都直接返回对象数据
  • 在Controller类的方法上: 将该方法的返回值转成json对象返回给客户端

7、@ PathVariable

用于绑定 url 中的占位符。 例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。

url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

属性:
1、value:用于指定 url 中占位符名称。
2、required:是否必须提供占位符。 
使用场景:
获取路径中的参数
例:
 @RequestMapping("testPathVaribale/{id}")
 public String testPathVaribale(@PathVariable(value = "id") Integer id){
     System.out.println("id="+id);
       return "success";
}

8、@RequestHeader

用于获取请求消息头。

属性:
1、value:提供消息头名称
2、required:是否必须有此消息头 
使用场景:

从请求头中获取参数,鉴权(token) Authorization

9、@CookieValue

用于把指定 cookie 名称的值传入控制器方法参数。

属性:
1、value:指定 cookie 的名称。
2、required:是否必须有此 cookie。 
使用场景:
  /**
     * 获取 Session
     * JSESSIONID=412A032E02A2594698F6E3F4458B9CE6
     */
    @RequestMapping("/testCookieValue")
    public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {
        System.out.println("JSESSIONID = " + sessionId);
        return "success";
    }

10、@ModelAttribute

代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。

在 Controller 中使用 @ModelAttribute 时,有以下几种应用情况。
1、应用在方法上
2、应用在方法的参数上
3、应用在方法上,并且方法也使用了 @RequestMapping文章来源地址https://www.toymoban.com/news/detail-405023.html

到了这里,关于SpringMVC的常用注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC常用注解、参数传递、返回值

    目录 前言 一、常用注解 二、参数传递 ​编辑 1. 基础类型+String类型 2. 复杂类型 3. @RequestParam 4. @PathVariable  5.@RequestBody 6. @RequestHeader  三、方法返回值 一:void 二:String 三:String+model  四:ModelAndView  四、页面跳转 在上一篇的博客中我们初步的了解学习SpringMVC基础知识,

    2024年02月09日
    浏览(37)
  • SpringMVC 中的常用注解和用法

    观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录  前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new project 2. 选择 SpringBoot 项目, 选择合适的 jdk 版本

    2024年02月09日
    浏览(45)
  • JavaEE——SpringMVC中的常用注解

    目录 1、@RestController (1)、@Controller (2)、@ResponseBody 2、RequestMappping (1)、定义 (2)、使用 【1】、修饰方法 【2】、修饰类 【3】、指定方法类型 【4】、简化版指定方法 (3)、获取参数 【1】、传递单个/多个参数 【2】、传递对象 3、@RequestParam 4、@RequestBody 5、@PathVar

    2024年02月15日
    浏览(72)
  • 【JavaEE进阶】SpringMVC中的常用注解和用法

    目录 学习Spring MVC 建立连接 @RequestMapping 注解介绍 @RequestMapping 使用 传参介绍 传递单个参数 传递多个参数 传递对象 后端参数重命名(后端参数映射)@RequestParam 非必传参数设置 传递数组 传递集合 传递JSON数据 获取URL中参数@PathVariable 上传文件@RequestPart 获取Cookie/Session 响应

    2024年04月14日
    浏览(86)
  • SpringMVC进阶:常用注解、参数传递和请求响应以及页面跳转

    目录 一、常用注解 1.1.@RequestMapping 1.2.@RequestParam 1.3.@ModelAttribute 1.4.@SessionAttributes 1.5.@RequestBody 1.6.@RequestHeader 1.7.@PathVariable 1.8.@CookieValue 二、参数传递 2.1.基础类型+String 2.2.复杂类型 2.3.@RequestParam 2.4.@PathVariable 2.5.@RequestBody 2.6.@RequestHeader 三、返回值 3.1.void 3.2.String 3.3.String+Mod

    2024年02月09日
    浏览(42)
  • SpringMVC的常用注解,参数传递以及页面跳转的使用

    目录 slf4j 常用注解 @RequestMapping @RequestParam @RequestBody @PathVariable 参数传递  首先在pom.xml配置文件中导入SLF4J的依赖 基础类型+String   复杂类型 @RequestParam @PathVariable @RequestBody  增删改查  返回值 void返回值  String返回值 model+String   页面跳转 --转发和重定向 SLF4J,简单日志门面

    2024年02月09日
    浏览(43)
  • SpringMVC如何保证Controller的并发安全

    【文章序言】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的

    2024年04月25日
    浏览(50)
  • SpringMVC controller方法返回值见解3

    说明:controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view 3.2.1.逻辑视图名 说明:controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。 返回字符串 在index.jsp里面定义超链接 3.2.2.Redirect重定向 说明: Contrller方法返回结果

    2024年01月15日
    浏览(34)
  • SpringMVC原理分析 | Controller配置、RestFul风格

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过 接口定义 或 注释定义 的两种方法实现 控制器负责解析用户的请求并将其转换为一个模型 SpringMVC中一个控制器可以包含多个方法 实现Controller接口 Contro

    2024年02月11日
    浏览(45)
  • 【老王读SpringMVC-6】Controller method 的正常返回值处理

    handler method 的返回值处理包含两个方面: 一是:返回值对象的处理; 二是:视图的渲染。 通过前面的分析,我们知道, 被 @RequestMapping 标记 handler method 的执行是通过调用 RequestMappingHandlerAdapter#handle() 。 其中,参数解析、handler method 的执行 和 对返回值的处理,最终是通过

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包