Spring boot

Spring boot 项目 发送GET 请求 使用 @GetMapping 报Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported] 错误 我看了请求头 我选择的GET请求但是浏览器发送的是,DELETE请求,我也尝试改过资源路径,把其他方法注释掉,只留一个,直接找不到资源路径了。
接口测试工具apifox
maven版本3.9.4
Spring boot版本 2.7.14
java版本11

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.14</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.kk</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo1</name>
    <description>demo1</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>2.3.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


package com.kk.demo1.controller;

import com.kk.demo1.mapper.deptMapper;
import com.kk.demo1.pojo.Dept;
import com.kk.demo1.pojo.Result;
import com.kk.demo1.service.deptService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/depts" ) // 抽取路径 默认次类下面的路径都是从 /depts 开始的
public class DeptController {

    @Autowired
    private deptService deptService;

    @GetMapping
    public Result selectAll() {
        log.info("查询全部部门");
        List<Dept> depts = deptService.selectAll();
        return Result.success(depts);
    }

    @GetMapping("/one/{id}")
    public Result selectOne (@PathVariable("id") Integer id){
        // 查询单个部门
        log.info("单个部门查询");
        Dept dept = deptService.selectOne(id);
        return Result.success(dept);
    }

    @DeleteMapping("/{id}")
    public Result deleteDept( @PathVariable("id") Integer id){
        // 删除部门
        deptService.deleteDept(id);
        return Result.success();
    }

    @PostMapping
    public Result insertDept(@RequestBody Dept name){
        // 插入部门
        deptService.insertDept(name);
        return Result.success();
    }

    @PutMapping
    public Result upDateDept(@RequestBody Dept name){
        // 更新部门
        deptService.upDateDept(name);
        List<Dept> depts = deptService.selectAll();
        return Result.success(depts);
    }
}

报错截图,还有你前段发送请求的代码看看

这是前端请求问题,和后端没关系了,把前端代码展示下看看,在前端找原因

【以下回答由 GPT 生成】

问题分析:

根据问题描述,出现了HTTP请求方法不支持的错误。报错信息显示浏览器发送的是DELETE请求,而期望的是GET请求。已经排除了请求头的问题,并且进行了尝试修改资源路径和注释其他方法的操作,但问题仍然存在。使用的接口测试工具是apifox,maven版本是3.9.4,Spring Boot版本是2.7.14,java版本是11。根据这些信息,可以确定问题可能是在接口定义和请求发送上出现了一些问题。

解决方案:

  1. 确保方法上使用了正确的注解
  2. 检查接口路径是否正确
  3. 添加相关依赖
  4. 检查请求发送方式

1. 确定方法上使用了正确的注解

在Spring中,使用@GetMapping注解来处理GET请求。确保在方法上使用了@GetMapping注解,并且没有使用其他错误的注解。

@GetMapping("/path")
public String handleGetRequest() {
    // Method logic here
}

如果使用了其他的注解,例如@PostMapping或者@DeleteMapping,就会出现请求方法不支持的错误。

2. 检查接口路径是否正确

检查路径是否与接口定义的路径匹配。确保在@GetMapping注解中指定了正确的路径。

@GetMapping("/path")

如果路径不正确,请求将无法找到对应的资源。

3. 添加相关依赖

检查pom.xml文件中是否添加了spring-boot-starter-web依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

如果没有添加该依赖,Spring Boot将无法处理HTTP请求。

4. 检查请求发送方式

使用apifox进行接口测试时,确保选择了GET请求方式。检查apifox中是否选择了正确的请求方式,以及是否正确设置了请求头信息。

结束语:

根据问题描述和分析,可能的解决方案包括确保方法上使用了正确的注解,检查接口路径是否正确,添加相关依赖,以及检查请求发送方式。根据实际情况逐一排查解决方案,并根据具体情况调整相应的配置和代码。如果问题仍然存在,可能需要进一步检查其他相关配置或调试代码。希望以上解决方案对您有所帮助!



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^