springboot启动之后 访问controller层接口报404

本文分享了作者在配置SpringBoot项目时遇到的404问题,解决的关键在于调整@ComponentScan的basePackages设置,确保与实际项目路径匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天手痒写一个springboot项目练练手,配置完项目需要的内容之后启动springboot项目,直接在浏览器输入接口链接,结果直接报404
在这里插入图片描述
仔细检查一破自己写的代码,结果是由于springboot启动类中@ComponentScan(basePackages = {“com.mabinji”})与路径文件不一样,改成一样就可以了。
在这里插入图片描述
测试启动一下
在这里插入图片描述

### Spring Boot 应用启动后无法访问接口的原因分析 Spring Boot 应用启动成功但无法访问接口通常由以下几个原因引起: #### 1. **Controller类未被扫描到** 如果 `@RestController` 或 `@Controller` 所在的包不在主应用程序类所在的包及其子包范围内,则可能导致控制器未被加载。Spring Boot 默认会扫描主应用程序类所在包及其子包下的组件。 解决方案: 确保 Controller 类位于主应用程序类所在的包或其子包中,或者手动指定扫描路径。可以通过以下方式实现: ```java @SpringBootApplication(scanBasePackages = {"com.example.controller"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 2. **Tomcat端口冲突** 当多个服务运行在同一台机器上并使用相同的默认端口(8080),可能会导致端口占用问题,进而引发请求失败。 解决方案: 修改 `application.properties` 文件中的服务器端口号以避免冲突。 ```properties server.port=9090 ``` 此外,可以动态获取实际使用的端口并通过日志打印出来[^2]。 #### 3. **上下文路径设置错误** 如果设置了自定义的应用上下文路径而未正确配置客户端 URL 请求路径,则可能造成资源不可达的情况。 解决方案: 确认 `application.properties` 中是否有如下配置项,并调整前端调用地址匹配该路径前缀。 ```properties server.servlet.context-path=/myapp ``` #### 4. **静态资源配置不当** 对于某些场景下需要返回 HTML 页面或其他静态文件时,如果没有按照约定目录放置这些资源也可能触发此现象。 解决方案: 将所有的静态资产放入标准位置如 `/src/main/resources/static/`, 并验证浏览器发出的确切URL是否符合预期[^3]。 #### 5. **跨域限制(CORS)** 前后端分离架构里存在不同源之间互相通信的需求,若缺乏适当处理则会被阻止访问APIs. 解决方案: 全局启用CORS支持或是针对特定endpoint开放权限即可解决问题. ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*"); } } ``` --- ### 总结 以上列举了几种常见的致使 springboot 正常启动却依旧遭遇 controller 接口寻址不到的情形以及对应的修复办法。每一种状况都需要开发者依据实际情况逐一排查定位根本诱因后再采取相应措施加以修正[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值