开发基于Spring Boot的应用程序过程中,springboot正常启动但打开页面遇到404错误。
原因分析与解决方案
原因一:控制器未被Spring容器扫描到
症状描述:
- 启动应用时无明显错误提示,但尝试访问特定URL时收到404错误。
原理:
声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描
·@ComponentScan注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解 ·@SpringBootApplication中,默认扫描的范围是启动类所在包及其子包。
解决方案:
-
检查启动类位置:确保启动类位于项目的适当目录结构内,如
src/main/java/com.example
而非根目录下。 -
调整@ComponentScan范围:默认情况下,Spring Boot只会扫描启动类所在包及其子包。若控制器位于不同包中,需在启动类上显式添加
@ComponentScan("com.example")
来明确扫描范围。@SpringBootApplication
@ComponentScan(“com.example”)
public class Application {
…
}