SpringMVC 中的常用注解和用法详解

 更新时间:2026年04月14日 08:57:06   作者:tryxr  
文章详细解释了SpringMVC中常用的注解及其用法,这些注解用于处理HTTP请求、绑定请求参数和数据等,结合实例代码给大家介绍的非常详细,对大家啊的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1、@Controller

类注解

将一个 Java 类标记为 Spring MVC 的 Controller,标识一个类为 Spring MVC 控制器

该类中的方法可以使用 @RequestMapping@GetMapping@PostMapping 等注解来映射 HTTP 请求。

2、@RestContoller

类注解

= @Controller + @ResponseBody(类级别)

@Controller 和 @ResponseBody 的组合,专为返回 数据(如 JSON、XML、纯文本等) 而非视图页面而设计。

3、@ResponseBody

既是类注解又是方法注解

用于将控制器方法的返回值直接写入 HTTP 响应体(Response Body),而不是被解析为视图名称(如 Thymeleaf 模板名)。

 /**
     * 返回视图
     * @return
     */
    @RequestMapping("/re1")
    public String re1() {
        return "/test.html";
    }
    /**
     * 返回数据
     * @return
     */
    @ResponseBody
    @RequestMapping("/re2")
    public String re2() {
        return "/test.html";
    }

4、@RequestMapping

既是类注解也是方法注解

Spring MVC 中最核心的请求映射注解,用于将 HTTP 请求(URL + 方法 + 参数等) 绑定到具体的控制器方法上。

@ResponseBody
    @RequestMapping(value = "/re7", produces = "application/json")
    public String re7() {
        return "{\"OK\": 1}";
    }

5、@GetMapping

方法注解

是 Spring Framework 提供的一个组合注解(Composed Annotation),它是 @RequestMapping(method = RequestMethod.GET) 的快捷方式,专门用于映射 HTTP GET 请求

6、@RequestParam

用于参数绑定/参数重命名,@RequestParam 用于将 HTTP 请求中的参数(如 URL 查询参数 ?name=Alice 或表单数据)绑定到控制器方法的某个参数上

属性说明默认值
value / name指定请求中的参数名-
required是否必须传该参数true
defaultValue参数未提供时的默认值-
@RequestMapping("/r6")
    public String r6(@RequestParam(value = "wd", required = false, defaultValue = "000000") String keyword) {
        return "接收到参数, keyword:" + keyword;
    }

默认情况下,请求中参数名相同的多个值,是封装到数组。如果要封装到集合,要使用 @RequestParam 绑定参数关系

@RequestMapping("/r8")
    public String r8(@RequestParam(required = false) List<String> list) {
        return list.toString();
    }

7、@RequestBody

方法注解

请求正文,意思是这个注解作用在请求正文的数据绑定,请求参数必须写在请求正

接收 JSON 对象,需要使用 @RequestBody 注解

/**
     * 接收一个json字符串, 并把json字符串转为Person对象
     * @param person
     * @return
     */
    @RequestMapping("/r9")
    public String r9(@RequestBody Person person) {
        return person.toString();
    }

8、@PathVariable

路径变量

作用在请求 URL 路径上的数据绑定,默认传递参数写在 URL 上,SpringMVC 就可以获取到

/**
     *  获取 URL 中的参数
     */
    @RequestMapping("/r10/{id}")
    public String r10(@PathVariable Integer id) {
        return "从 url 中获取 id:"+id;
    }
@RequestMapping("r11/{id}/{name}")
    public String r11(@PathVariable Integer id, @PathVariable("name") String userName) {
        return "解析参数 id:" + id + ",name:" + userName;
    }

9、@RequestPart

用于上传文件

@RequestMapping("/r12")
    public String getfile(@RequestPart("file") MultipartFile file) throws IOException {
        // 获取文件名称
        String fileName = file.getOriginalFilename();
        System.out.println(fileName);
        //文件上传
        file.transferTo(new File("D:\\AAA   Java/" + file.getOriginalFilename()));
        return "接收到文件名为:" + fileName;
    }

10、@CookieValue

用于获取 Cookie 信息

@RequestMapping("/getCookie2")
    public String getCookie2(@CookieValue("name") String name) {
        return "获取 Cookie 成功, name:" + name;
    }

11、@SessionAttribute

用于获取 Session 信息

@RequestMapping("/getSession3")
    public String getSession3(@SessionAttribute("address") String address) {
        return "获取 Session 成功, address:" + address;
    }

12、@RequestHeader

用于获取头部信息

@RequestMapping("/getHeader2")
    public String getHeader2(@RequestHeader("User-Agent") String userAgent) {
        return "获取header成功. userAgent:"+ userAgent;
    }

到此这篇关于SpringMVC 中的常用注解和用法详解的文章就介绍到这了,更多相关SpringMVC注解和用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java面试synchronized偏向锁后hashcode存址

    Java面试synchronized偏向锁后hashcode存址

    这篇文章主要为大家介绍了Java面试中synchronized偏向锁后hashcode存址详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Spring的@PropertySource注解源码解析

    Spring的@PropertySource注解源码解析

    这篇文章主要介绍了Spring的@PropertySource注解源码解析,就以源码时序图的方式,直观的感受下@PropertySource注解在Spring源码层面的执行流程,需要的朋友可以参考下
    2023-11-11
  • MyBatis @Param注解的实现

    MyBatis @Param注解的实现

    本文主要介绍了MyBatis @Param注解的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 解决IDEA集成Docker插件后出现日志乱码的问题

    解决IDEA集成Docker插件后出现日志乱码的问题

    这篇文章主要介绍了解决IDEA集成Docker插件后出现日志乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 单例模式的反射漏洞和反序列化漏洞代码实例

    单例模式的反射漏洞和反序列化漏洞代码实例

    这篇文章主要介绍了单例模式的反射漏洞和反序列化漏洞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Eclipse内置浏览器打开方法

    Eclipse内置浏览器打开方法

    这篇文章主要介绍了Eclipse内置浏览器打开方法,需要的朋友可以了解下。
    2017-09-09
  • java 注解的基础详细介绍

    java 注解的基础详细介绍

    这篇文章主要介绍了java 注解的基础详细介绍的相关资料,希望通过本文大家能掌握注解的使用方法,需要的朋友可以参考下
    2017-09-09
  • Java基础之简单介绍一下Maven

    Java基础之简单介绍一下Maven

    今天给大家复习一下Java基础知识,简单介绍Maven,文中有非常详细的解释,对Java初学者很有帮助哟,需要的朋友可以参考下
    2021-05-05
  • clickhouse 批量插入数据及ClickHouse常用命令详解

    clickhouse 批量插入数据及ClickHouse常用命令详解

    这篇文章主要介绍了clickhouse 批量插入数据及ClickHouse常用命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • JDBC的扩展知识点总结

    JDBC的扩展知识点总结

    这篇文章主要介绍了JDBC的扩展知识点总结,文中有非常详细的代码示例,对正在学习JDBC的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05

最新评论