springboot项目正常启动了,用的@RestController 注解去配置的controller,然后路径也搭好了,但是浏览器一直报404。

解决方法:

方法一:springboot的启动类要放在写的所有类的最外面,否则会扫描不到controller (原因:springboot只会扫描启动类当前包和以下的包

(亲测有效!)
看图:

  • 之前的错误目录:
  • springboot正常启动但访问404 【跳坑】_spring boot

  • 项目正确目录:
  • springboot正常启动但访问404 【跳坑】_spring_02

  • 前端页面发送请求,后台控制器执行成功 !
  • springboot正常启动但访问404 【跳坑】_spring_03

  • 前端页面:
  • springboot正常启动但访问404 【跳坑】_spring_04

当时我就是因为把启动类放在了一个和controller所在包同级的包下面,因为springboot只扫描启动类当前包和以下的包,由于启动类所在的包中只有启动类,所以springboot扫描不到controller,就处理不了前端发过来的请求。

补充知识:【@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器】

方法二:在启动类的上面添加 @ComponentScan(basePackages = {“com.demo.*”})

(这个方法没有试过)

controller补充知识:

SpringMVC Controller介绍