SpringBoot访问不到controller的解决方案

 更新时间:2023年07月26日 10:31:19   作者:Evan Wang  
这篇文章主要介绍了SpringBoot访问不到controller的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot访问不到controller

最近开始学习spring boot,做练习时候访问不到controller,报了404错误。开始以为是没有扫描到的问题,后来发现还有其他原因。下面我们总结一下访问不到controller的错误原因。 

首先,出现这个异常说明了跳转页面的url无对应的值. 

异常:

This application has no explicit mapping for /error, so you are seeing this as afallback. 

解决方案

1. 确认是否扫描到了controller,Application启动类的位置是否正确。

Application启动类的位置不对。要将Application类放在最外侧。即包含所有子包 

原因:spring-boot会自动加载启动类所在包下以及其子包下的所有组件。

例如:下图会扫描Application启动类包下(即mycode包)、以及其子包(这里的controller包)。

2. 确认输入项目路径是否正确

如:http://localhost:8080/index,这里需要注意的是端口号的查看。

3.确认注解是否用对

在 Controller 层类上面使用的注解是 @RestController 而并非是 @Controller,或者是 @Controller + @ResponseBody;

详解:

  • 如果返回 String 或者 json 的话就直接类上用 @RestController;   
  • 如果想要页面跳转的话,就使用 @Controller;   
  • 如果只有在某方法上返回 json,其他方法跳转页面,则在类上添加 @Controller,在需要返回 String 和 json 的方法上添加 @ResponseBody 注解;

4.确认导入项目注解的包地址是否正确

@RequestMapping("/hello")
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
import org.springframework.web.bind.annotation.RestController;

5.控制器的URL路径书写问题 

@RequestMapping(“xxxxxxxxxxxxxx”) 

实际访问的路径与”xxx”不符合,注意对应一下自己访问的url与@RequestMapping中填写的是否一致,千万别忽略了多了一个空格的问题。

6.配置了上下文路径,使用了server.context-path

这里着重说一下这个问题,这也是博主犯得错误。

我使用的SpringBoot版本为2.1.1,而server.context-path在2.0版本中已经弃用了,采用 server.servlet.context-path。

由于版本的差异导致了配置的上下文路径无效。

 SpringBoot版本配置
1.xserver.context-path
2.xserver.servlet.context-path

建议大家可以专门参考一下spring boot 1.x版本和2.x版本的差别,这样后续学习或者工作过程中有相关问题可以减少很多麻烦。

springboot项目controller访问不到的一种情况

在新创建一个springboot项目时,注意Package下的目录不要太长

如果像上图那样创建项目,最终出来的项目结构中,你的springboot启动类会出现在springboot_demo1包下面,这种情况下,调用controller层会访问不到。

解决办法

将SpringbootDemo1Application类移出当前包,之后就可以正常使用controller层

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JVM如何处理异常深入详解

    JVM如何处理异常深入详解

    异常处理的两大元素:抛出异常、捕获异常,非正常处理的两个方法。下面这篇文章主要给大家介绍了关于JVM如何处理异常的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2019-01-01
  • Java强制转化示例代码详解

    Java强制转化示例代码详解

    这篇文章主要介绍了Java编程语言中的类型转换,包括基本类型之间的强制类型转换和引用类型的强制类型转换,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • java暴力匹配及KMP算法解决字符串匹配问题示例详解

    java暴力匹配及KMP算法解决字符串匹配问题示例详解

    这篇文章主要为大家介绍了java算法中暴力匹配算法及KMP算法解决字符串匹配的问题示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Java注解(Annotations)的定义和使用详解

    Java注解(Annotations)的定义和使用详解

    Java注解(Annotations)是Java5引入的一种元数据(Metadata),它提供了一种在源代码中嵌入补充信息的方式,这些信息可以被编译器、JVM或其他工具在编译时、运行时进行处理,注解本身不会直接影响程序的执行,但可以用来指导编译器、JVM或其他工具的行为,从而实现各种功能
    2025-03-03
  • 关于Java中避免空指针的方法

    关于Java中避免空指针的方法

    这篇文章主要介绍了关于Java中避免空指针的方法,空指针异常就是我们在对空对象进行的任何操作都会报空指针异常,所谓的指针,就是java中的对象的引用,比如String s;这个就是指针,需要的朋友可以参考下
    2023-07-07
  • 生产环境NoHttpResponseException异常排查解决记录分析

    生产环境NoHttpResponseException异常排查解决记录分析

    这篇文章主要为大家介绍了生产环境NoHttpResponseException异常排查解决记录分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • java 数据结构 冒泡排序实现代码

    java 数据结构 冒泡排序实现代码

    这篇文章主要介绍了java 数据结构 冒泡排序的相关资料,并附实例代码,有需要的小伙伴可以参考下
    2016-09-09
  • Java object wait notify notifyAll代码解析

    Java object wait notify notifyAll代码解析

    这篇文章主要介绍了Java object wait notify notifyAll代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java编程接口详细

    Java编程接口详细

    这篇文章主要小编主要给大家讲解的是Java编程中的接口,文章会从抽象类和抽象方法开始展开内容,感兴趣的小伙伴可以参考下面文章的具体内容
    2021-10-10
  • Spring Boot中的微信支付全过程(小程序)

    Spring Boot中的微信支付全过程(小程序)

    微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。今天通过本文给大家介绍Spring Boot中的微信支付全过程,感兴趣的朋友一起看看吧
    2022-05-05

最新评论