记录学习SpringBoot时遇到的一个坑
项目结构
HelloController中的内容
@RestController
public class HelloController {
@RequestMapping("/test")
public String handle01(){
return "Hello, Spring Boot 2!";
}
}
MainApplication中的内容:
/**
* 主程序类
* @SpringBootApplication:这是一个SpringBoot应用
*/
@SpringBootApplication()
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
启动项目,访问路径:http://localhost:8080/test,报错了!!
原因是:SpringBoot默认扫描的是主类所在包及其子包中的其他类,分析项目结构可以发现,MainApplication这个主类(被@SpringBootApplication标注的类)在boot这个包下,而HelloController在controller这个包下,所有SpringBoot在启动时默认是扫描不到其他包下的类的,只能扫描到boot这个包下的类。
解决方法:
1、把MainApplication这个主类移到cn.lgz这个包下
2、主类中使用注解配置要扫描的包,如下:
@SpringBootApplication(scanBasePackages = "cn.lgz")