Spring Boot Sping Boot 不扫描任何子包以及同一包下的类文件

wkyowqbh  于 2023-03-02  发布在  Spring
关注(0)|答案(2)|浏览(258)

在我写了一个简单的路由使用休息控制器和 Spring Boot 的路由总是返回404,无论是在一个单独的包或在同一个包中提到的路由。路由只工作,如果路由是在主函数中定义的@SpringBootApplication提到,请帮助我包com.gowtham;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@ComponentScan(basePackages = "com.gowtham")
public class DemoApplication {

    
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    @RestController
    public class controller {
        @GetMapping("/greet")
        public String hello() {
            return "HELLO";
        }
    }

/问候路由有效

import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ccc {
    
    @GetMapping("/gg")
    public String hello() {
        return "HELLO";
        }
    }

但是这个路由/gg在主包下面的.controller包里面不起作用,我试着把类“ccc”移到主包里面,我也试着扫描基本包,但是没有用
如果我在其他计算机中导入相同的程序,它运行良好

程序包结构

pvcm50d1

pvcm50d11#

请确保您的Sping Boot 应用程序正在扫描控制器的正确包。您可以通过向主类添加@ComponentScan注解来指定组件扫描的基本包。

@SpringBootApplication
@ComponentScan(basePackages = "com.gowtham")
public class DemoApplication {
    // ...
}
8cdiaqws

8cdiaqws2#

我也面临着上面提到的同样的问题。我尝试使用Sping Boot 版本2.7.9而不是3.0.3。它工作得很好,虽然不确定新版本中有什么变化。

相关问题