You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot请求/addUser报无映射错误但Controller已配置如何解决?

问题原因及解决方案

1 核心问题:Web MVC自动配置被错误禁用

你在LoginApplication类的@EnableAutoConfiguration注解中,主动排除了WebMvcAutoConfiguration.class,该类是Spring Boot实现Spring MVC自动配置的核心依赖,负责请求映射扫描、DispatcherServlet注册等核心功能,禁用后Spring不会识别Controller中配置的@RequestMapping注解,因此会返回No mapping for POST /addUser的错误。

修复方式:将WebMvcAutoConfiguration从排除列表中移除,修改后的启动类代码如下:

package com.example.login;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class})
public class LoginApplication {

    public static void main(String[] args) {
        SpringApplication.run(LoginApplication.class, args);
    }

}

2 冗余注解问题

UserController类上同时标注了@Controller和@RestController,属于冗余配置:@RestController本身已经组合了@Controller和@ResponseBody注解,直接删除类上的@Controller注解即可。

3 删除接口路径配置错误

deleteUser方法中使用了@PathVariable接收id参数,但对应的@RequestMapping没有配置路径占位符,调用该接口时会报错,修改为如下配置即可:

@RequestMapping(path = "/removeUser/{id}", method = RequestMethod.DELETE)
public String deleteUser(@PathVariable String id) {
    userRepository.deleteById(id);
    return "removed user with id" + id;
}

4 MongoDB连接异常处理

日志中的MongoSocketReadException: Prematurely reached end of stream错误,通常是MongoDB Atlas的IP白名单未添加你本地的公网IP、Mongo连接串的用户名/密码配置错误、或者本地网络无法访问Mongo服务器导致,依次检查上述配置即可解决。

内容的提问来源于stack exchange,提问作者cspurdue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:57:01