当前位置:   article > 正文

Springboot系列文章2:RequestMapping 注解说明_springboot中的requestmapping有什么作用?

springboot中的requestmapping有什么作用?

Springboot系列文章

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。



前言

@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。

一、web请求响应架构

在这里插入图片描述

二、Requestmapping作用

整个请求响应的流程如上所示,要配置 Web 请求的映射,就需要用上 @RequestMapping 注解。

1. 类和方法上注解

作用于类,用于第一级的访问目录;作用在方法上,第二级的访问目录。本项目中的hutooldemo用于类上注解,后面的URL用于方法注解。整个项目如所示:

/hutooldemo
           /   	:  index方法
           /goodbye :  goodbye方法
           /user     :  getUser方法
           /*  		:其他uri处理方法:
  • 1
  • 2
  • 3
  • 4
  • 5

RequestMapping的属性

  • path 指定请求路径的url
  • value value属性和path属性是一样的
  • mthod 指定该方法的请求方式
  • params 指定限制请求参数的条件,它支持简单的表达式。要求请求参数的 key 和 value 必须和配置的一模一样。
  • headers 发送的请求中必须包含的请求头

二、RequestMapping 示例

package com.demo.hutool.controller;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import com.demo.hutool.model.HutoolUser;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.hutool.system.SystemUtil;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;

@RestController
@RequestMapping("/hutooldemo")
public class HutoolControl {

    @RequestMapping(value={"","/"})     //多个uri处理:
    public String index() {
        StringBuilder sb = new StringBuilder();
        sb.append("<pre>");
        sb.append("Hello, Hutool Demo 5.7!");
        sb.append("<pre>");
        return sb.toString();
    }

    @RequestMapping("/goodbye")
    //单个uri处理
    public String goodbye()
    {
        return "goodbye hutooldemo...";
    }


    @RequestMapping("/user")
    //单个uri处理,对象自动转json串
    public HutoolUser getUser()
    {
        Console.print("today is {}",DateUtil.now());
        HutoolUser user=new HutoolUser("fum",DateUtil.parse("1978-01-01") );
        return  user;
    }


    @RequestMapping("/*")
    //默认处理方法:处理其他所有uri
    public String other()
    {
        return "other: hutool except ...3";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

1.单个uri

    @RequestMapping("/goodbye")
    //单个uri处理
    public String goodbye()
    {
        return "goodbye hutooldemo...";
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.单个uri(返回对象的json)

    @RequestMapping("/user")
    //单个uri处理,对象自动转json串
    public HutoolUser getUser()
    {
        Console.print("today is {}",DateUtil.now());
        HutoolUser user=new HutoolUser("fum",DateUtil.parse("1978-01-01") );
        return  user;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.单个uri(带参数)

RequestParam:
1)通过value,指定参数名
2)通过required,指定参数是否必填
3)没有指定value,那么参数名默认是函数的入参变量名

    @RequestMapping("/user")
    //单个uri处理,对象自动转json串
    public HutoolUser getUser(@RequestParam(value = "name", required = false) String userName)
    {
        Console.print("name is {}",userName);
        HutoolUser user=new HutoolUser(userName,DateUtil.parse("1978-01-01") );
        return  user;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4.多个uri

    @RequestMapping(value={"","/"})     //多个uri处理:
    public String index() {
        StringBuilder sb = new StringBuilder();
        sb.append("<pre>");
        sb.append("Hello, Hutool Demo 5.7!");
        sb.append("<pre>");
        return sb.toString();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.剩余uri

    @RequestMapping("/*")
    //默认处理方法:处理其他所有uri
    public String other()
    {
        return "other: hutool except ...3";
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

总结

如你在本文中所看到的,@RequestMapping 注解是非常灵活的。你可以使用该注解配置 Spring MVC 来处理大量的场景用例。它可以被用来在 Spring MVC 中配置传统的网页请求,也可以是 REST 风格的 Web 服务。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/194537
推荐阅读
相关标签
  

闽ICP备14008679号