Spring Boot无法识别@RestController问题求助
解决Spring Boot无法识别@RestController的问题
问题出在你启动应用的方式上:
- 你的
Main类标注了@SpringBootApplication(这个注解包含@Configuration、@EnableAutoConfiguration和@ComponentScan,会自动扫描当前包及子包下的组件),但你在main方法里却启动了MuninContext.class - 而
MuninContext只加了@Configuration和@EnableAutoConfiguration,没有开启组件扫描,所以Spring找不到你的@RestController类。
两种解决方案:
方案1:修改启动类为Main.class
直接把Main类里的启动代码改成用自身作为配置类,利用@SpringBootApplication自带的组件扫描功能:
package com.iglossolalia.munin; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { public static void main(String[] args) { // 替换为Main.class作为启动配置类 SpringApplication.run(Main.class, args); } }
方案2:给MuninContext添加组件扫描注解
如果坚持要用MuninContext作为启动类,给它加上@ComponentScan注解指定扫描路径:
package com.iglossolalia.munin; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration // 添加组件扫描,指定当前包 @ComponentScan(basePackages = "com.iglossolalia.munin") public class MuninContext { }
改完重启应用后,你会看到日志输出Started MuninService,访问/health也会返回pong。
内容的提问来源于stack exchange,提问作者Mikaela Irish
相关产品推荐
相关产品推荐

