Spring Boot新手遇到404问题的原因及其解决方法

刚学Spring Boot的小白们,非常容易遇到404路径无效的问题。有人就会说明明我是按照教程来的,明明我的路径是对的,为什么还是404,要记住程序不会骗人的。出错了咱就去解决。下面就小白在开发过程中,看看那些会造成404问题吧。

严格检查路径各个单词的拼写

很多人在写请求url的时候,由于自己的粗心大意,就很容易把路径的写单词写错,比如http:localhost:8080/sys/login写成http:localhost:8080/sys/loign等。有人怀疑了配置,怀疑了依赖,甚至还去清缓存。就没是没发现原来是单词写错了。

忘记加注解

想要方法能够被访问,需要在控制器(一般是命名为Controller的类)加上@RestController和对应的方法加入对应的Mapping注解。示例如下:

@RestController
public class MainController {

    @Autowired
    TestService testService;

    @PostMapping("/test")
    @ResponseBody
    public String test(){
        testService.test();
        return null;
    }


}

控制器路径错误

控制器Controller类需要和启动类同一根目录才能被springboot自动扫描到。如果不是在同一根目录,这则需要在启动加入@ComponentScan注解,指定Controller类所在的包路径,出现这问题就是在创建项目中,自己创建包,文件的时候没有注意路径问题。一般在实际开发中,启动类和controller类是在同一根路径下。

静态资源的访问

静态资源放的位置默认是的src/main/resources/static 或 public。如果需要更改,则需要在配置文件配置对应的路径。比如在application.properties文件中增加如下配置。

spring.resources.static-locations=file:/opt/static/

访问格式

 Spring Boot调用方法的访问格式一般是:ip+端口+server.servlet.context-paht+控制器路径+方法路径。比如下图的访问路径是:localhost:8080/sys/test。端口和server.servlet.context-paht都可以在配置文件找到。

@RestController
@RequestMapping("sys")
public class MainController {

    @Autowired
    TestService testService;

    @PostMapping("/test")
    @ResponseBody
    public String test(){
        testService.test();
        return null;
    }


}

总结

404问题其实很好解决的。多遇到几次,总结一下就很容已发现问题。如果你去了解Spring Boot的源码,你就会了解控制器是如何工作的。这样在开发的过程中无论出现什么样404的问题,你都手到擒来。当然,如果出现正式环境404的问题,就要考虑服务器端口是否开放,服务转发是否正常等各种问题,排查思路和开发的排查思路完全不一样。

最后祝大家永远不会404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值