首页 > 其他分享 >springMVC的常见注解,以及注解的作用。@Controller,@RestController,@RequestMapping,@RequestParam,@RequestHeader等

springMVC的常见注解,以及注解的作用。@Controller,@RestController,@RequestMapping,@RequestParam,@RequestHeader等

时间:2024-01-05 20:55:07浏览次数:31  
标签:RestController RequestMapping 请求 Controller 参数 注解 String

目录
注:使用注解,必须要开启注解包扫描
1.@Controller
2.@RequestMapping
3.@PathVariable
4.@RequestParam
5.@RequestHeader
6.@CookieValue
7.@RequestBody
该注解的作用
8.@ResponseBody
9.@RestController
注:使用注解,必须要开启注解包扫描
在MVC核心配置中开启注解包扫描

<!--    配置包扫描,即要扫描哪些包到容器中-->
    <context:component-scan base-package="com.zzj"></context:component-scan>

开启MVC注解扫描的支持

<!--    开启注解扫描的支持-->
    <mvc:annotation-driven></mvc:annotation-driven>

之后在配置完web.xml和MVC核心配置文件后,就可以正常使用注解啦,

如果不知道如何配置springMVC的会,请移步看我的springmvc超详细配置讲解。

1.@Controller
什么是Controller,跟它类似的注解有哪些?
controller也就是控制器(也可以理解为处理器Handler),它是处理请求,和对请求参数处理的一个控制器。
跟它类似的注解有三个:其中@Controller是将标注的类作为一个控制层的组件放到容器中;
@Component:是将标注的类作为一个普通的组件放到容器中
@Service:是将标注的类作为一个服务层的组件放到容器中
@Repository:是将标注的类作为一个持久层(dao)组件放到容器中
它们的作用其实一样,都是放在容器中,就是区别一下。

2.@RequestMapping
1.该注解的使用位置
··a.该注解作用于控制层类上
··b.该注解作用于控制层方法上,这两种方式可以同时存在,映射顺序为类—》方法。
2.该注解的参数
``1).value={“/a”,“/b”,…,“/n”}:显而易见的,value参数用来绑定请求的URL,且是一个数组。意思就是可以为一个控制器方法同时指定多个请求匹配URL。使用 /a 或者 /b 或者其他的都可以访问。不过一般都是一个就可以。
··2)method={RequesMethodt}
这个属性是指定请求中的请求方式是什么,参数也是一个数组类型,指当前请求方式的请求可以配匹配映射。不使用RestFul模式的话只有Get和Post方式被支持。

    @RequestMapping(value = "/test2",method = {RequestMethod.GET,RequestMethod.DELETE,RequestMethod.POST})
1
3.@PathVariable
这个注解是在使用RestFul方式时,来和请求URL携带的参数进行与形参绑定用的。
要了解Restful请求方式,请移步到下面这篇文章,相信可以为你解惑~

4.@RequestParam
这个注解是用于方法中为某个形参进行请求参数入参用的。
···注:如果请求体中的参数名和控制器(controller)的形参名一致的话,就会默认匹配并绑定参数。一般是基本类型string的匹配;

··如果形参数名与请求体中参数名不一致,就需要使用当前注解来为形参绑定参数。
其中注解的三个属性分别代表:
····value=“请求中的参数名”,指定后就会将请求中的该参数入参匹配到,被该注解注释的形参中。
····required=true/false: 是指该参数是否必须存在于请求体中。 true:传入参数必须携带该参数,否则无法匹配成功。一般设置为false。
····defaultValue=“默认值”:即若参数传入为null,则为其设置默认值。

   @RequestMapping("/test4")
    public String test4(@RequestParam(value = "username",required = false,defaultValue = "zzj") String username, String password){

        return "success";
    }

5.@RequestHeader
···作用于形参上,将传入请求中的请求头信息与形参进行绑定。也可以理解为获取请求头信息给形参吧。
其三个参数的意思和上面的***@RequestParam***一样

    @RequestMapping("/test5")
    public String test5(@RequestHeader(value = "host",required = false) String username){

        return "success";
    }

6.@CookieValue
与上面两个注解一样,都是用于标记控制器方法的形参,并为其入参的。
该注解用来获取请求中的cookie信息。
其三哥属性及其用法意义,=都与上面两个是一样的

    @RequestMapping("/test6")
    public String test6(@CookieValue(value = "cookieName",required = false) String cookieName){
        return "success";
    }

7.@RequestBody
该注解的作用
这个注解是用来绑定在形参上,来获取,post请求方式下请求体json数据的注解。一般用于将请求体参数与我们得Java类对象进行绑定。但是要实现该功能呢就需要一个依赖的支持,他能够将我们得json对象转换W为Java对象,并赋值。引入 jacson-databind

<!--        支持@RequestBody注解,将json转为Java对象的依赖-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.4</version>
        </dependency>

这里就能将请求体内容自动转换为User对象。

    @RequestMapping("/test7")
    public String test7(@RequestBody User user){
        return "success";
    }

8.@ResponseBody
这个注解作用于方法上
···作用于方法上,是指将返回值作为响应体消息响应给浏览器。也可以使用合成注解,就是下面这个@RestController

9.@RestController
该注解注释在类上,它底层由@Controller和@ResponseBody两个注解一起注释。所以使用该注解后就不在需要写上@Controller了。
····并且该注解相当于给当前控制器中的每一个方法添加一个@ResponseBody注解。
···该注解注释后就不会再走视图解析器了(viewResolver),相当于直接使用HTTPServletResponse给响应体设置内容。
————————————————
版权声明:本文为CSDN博主「漫慢丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43660506/article/details/123365543

标签:RestController,RequestMapping,请求,Controller,参数,注解,String
From: https://www.cnblogs.com/lidabo/p/17948067

相关文章

  • springmvc的五个常用注解?
    1、@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特......
  • Java 自定义注解
    1. 元注解元注解是Java 提供的一些基本注解,使用这些元注解区可疑创建新的注解;可以先大致看一下元注解,然后去看后面自定义注解的例子。元注解有@Retention,@Documented,@Target,@Inherited,@Repeatable 五种。1.1 @Retention@Retention 可以定义注解的生命周期,注解的存活时......
  • java 注解中 必填值
    Java注解中的必填值引言在Java编程中,注解(Annotation)是一种用于向代码中添加元数据的方式。它们提供了一种在代码中添加说明、配置和约束的方法。在使用注解时,有时候需要指定一些必填值,以确保注解的正确使用。本文将介绍Java注解中必填值的概念,并使用代码示例进行说明。什么是必......
  • java 注解默认参数
    Java注解默认参数实现流程引言本文将介绍如何在Java中实现注解的默认参数。注解是Java中一种元数据的形式,可以用来描述类、方法、字段等。通过给注解添加默认参数,可以在使用注解时不需要指定所有参数的值,从而简化代码编写。总体流程下面是实现Java注解默认参数的整体流程:flowc......
  • Mybatis-Plus 常用注解总结
    在框架的使用中,注解约定大于配置,我们可以轻松通过注解完成很多工作,比如字段改名映射,插入更新的时间写入等,下面的学习内容主要列举了常用的注解。我们看看官网中列出的注解有哪些[1]:本文的注解学习主要内容集中在以下的注解中:@TableName@TableId@TableField@EnumValue@Ver......
  • 【转载】 @configuration注解详解
    为了能深入地掌握SpringBoot的自动配置原理,我们来看一下SpringBoot的一些底层注解,要知道它们是如何完成相关功能的。首先,我们来看一下怎么给容器里面添加组件。我在这儿准备了两个组件,它们分别是:用户,即User类packagecom.spring.learn.bean;publicclassUser{privat......
  • java注解
    一、注解概述 二、JDK内置注解1、@Override 2、@Deprecated 3、@SuppressWarnings 4、@Functionalinterface 三、元注解1、概念 2、@Retention 3、@Target 四、自定义注解  五、注解的注意事项  六、通过注解运行指定类中的指......
  • Wpf 通过数据注解(特性)校验表单+Prism8+IDataErrorInfo
    十年河东,十年河西,莫欺少年穷学无止境,精益求精参考:WPF表单验证摘要WPF表单验证是WPF重要基础设施之一,依靠MVVM的数据绑定机制及微软的有力封装,使得我们在处理实体表单验证等可以快捷高效的灵活处理。常见的表单验证实现大概有Exception 、ValidationRule 、IDataErrorInfo ,......
  • lombok 常用注解图文详解(含代码)
    文章目录1.@Getter/@Setter1.1可用于成员变量上1.1.1可选择生成方法的修饰符1.2可用于类上1.2.1静态变量不会生成相应方法1.2.2常量不会生成Setter方法1.2.3单独设置某个变量不可查看(同1.1)[email protected]排除某些成员变量2.2输出指定变量[email protected]生......
  • 「快速上手」Lombok常用注解大全
    Lombok注解教学Lombok是一个Java库,它通过注解的方式来简化Java代码的编写,减少样板代码(boilerplatecode)的重复,提高代码的可读性和可维护性。本文将介绍Lombok库中常用的注解及其用法。1.@Getter和@Setter@Getter和@Setter是Lombok中最常用的注解之一,它们用于自动生成JavaBe......