Spring MVC 接口的访问方法如何设置

@RequestMapping 是 Spring 框架中用于映射 HTTP 请求到控制器方法的注解。它支持以下 HTTP 方法访问类型,通过 method 属性指定:

  1. GET:用于获取资源
  2. POST:用于提交数据
  3. PUT:用于更新资源
  4. DELETE:用于删除资源
  5. PATCH:用于部分更新资源
  6. HEAD:类似于 GET 请求,但只返回状态行和头信息
  7. OPTIONS:返回服务器支持的 HTTP 方法
    现实情况GET方法和POST方法的使用占很大的部分,主要讲解GET和POST方法的使用,其他方法举一反三就可以了

1.所有方法都可以访问情况

@RequestMapping可以是类注解也可以是方法注解,加在类上或者加在方法上都可以,一般来说都建议在类上面加上,因为方便我们快速的定位问题。

java 复制代码
@RestController
@RequestMapping("/user")   //第一层路径
public class UserController {

    @RequestMapping("/u1") //第二层路径
    public String u1() {
        return "hello u1";
    }
}

将程序运行起来后,通过浏览器输入 http://localhost:8080/user/u1 访问,当然端口有可能不是8080,在运行的时候看一下就可以了

结果:

1.1 类注解可以不写,但是一般建议写上

java 复制代码
@RestController
public class UserController {

    @RequestMapping("/u1")
    public String u1() {
        return "hello u1";
    }
}

1.2 在写路径的时候不写 "/" 也可以,但是最好加上,这算是行业内的规范

java 复制代码
@RequestMapping("user")
public class UserController {

    @RequestMapping("u1")
    public String u1() {
        return "hello u1";
    }
}

1.3 也可以写多层路径

java 复制代码
@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/u/u1")
    public String u1() {
        return "hello u1";
    }
}

2. 限制特定的方法访问

这里我只举例get的访问方式,之后的简单介绍一下就ok了

在注解中添加method属性,可以通过这些属性设置访问的限定方式:

@RequestMapping添加method属性

java 复制代码
@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value = "/u1", method = RequestMethod.GET)
    public String u1() {
        return "hello u1";
    }
}

或者使用

@GetMapping

java 复制代码
@RestController
@RequestMapping("/user")
public class UserController {

//    @RequestMapping(value = "/u1", method = RequestMethod.GET)
    @GetMapping("/u1")//就只能被get方法访问
    public String u1() {
        return "hello u1";
    }
}

不同方法测试

这里我们用postman来测试,不同的方法是否可以访问:

测试get方法:

测试post方法:

3.其他方法

快捷注解

为简化开发,Spring 还提供了针对特定 HTTP 方法的快捷注解:

  • @GetMapping:等同于 @RequestMapping(method = RequestMethod.GET)
  • @PostMapping:等同于 @RequestMapping(method = RequestMethod.POST)
  • @PutMapping:等同于 @RequestMapping(method = RequestMethod.PUT)
  • @DeleteMapping:等同于 @RequestMapping(method = RequestMethod.DELETE)
  • @PatchMapping:等同于 @RequestMapping(method = RequestMethod.PATCH)

这些快捷注解使代码更简洁易读,推荐优先使用。

相关推荐
章豪Mrrey nical18 分钟前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
超级大只老咪1 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶1 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长1 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子1 小时前
JDK 安装配置
java·开发语言
星哥说事1 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink1 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼2 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII2 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home2 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法