Spring Boot not finding RestController



所以我有一个简单的spring引导应用程序,@SpringBootApplication,一个存根@Configuration和一个@RestController都在同一个包中。Spring-boot-web-starter在那里,web服务器启动良好,执行器端点和所有。但是我无论如何也不能让应用程序选择@RestControllers。

输入图片描述

Main.class:

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) {
SpringApplication.run(MuninContext.class, args);
}
}

MuninContext.class:

package com.iglossolalia.munin;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
public class MuninContext {
}

MuninService.class:

package com.iglossolalia.munin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MuninService {
private static final Logger LOG = LoggerFactory.getLogger(MuninService.class);
public MuninService() {
LOG.info("Started MuninService");
}
@GetMapping("/health")
public String healthCheck() {
return "pong";
}
}

尝试显式地将rest控制器添加到组件扫描中,但没有成功。

您的MuninContext中没有@ComponentScan注释。实际上,你可以在main方法中写SpringApplication.run(Main.class, args)作为Spring Initializr默认生成,你不需要你的上下文,因为@SpringBootApplication作为配置工作,包含@EnableAutoConfiguration, @ComponentScan和其他一些注释。否则,当你在SpringApplication.run方法中将配置类作为参数传递时,Main类中的注释@SpringBootApplication将不起作用

最新更新