복붙노트

[SPRING] 최상위 패키지에없는 주 클래스 인 경우 @RestController를 찾을 수 없습니다.

SPRING

최상위 패키지에없는 주 클래스 인 경우 @RestController를 찾을 수 없습니다.

@RestController로 주석 된 클래스 리소스가 있지만 @SpringBootApplication으로 주석 된 주 클래스 App이 최상위 패키지에있는 경우에만 사용됩니다.

공장:

com
 +- test
     +- project
         +- App.java
         |
         +- resources
         |   +- Resource.java

작동하지 않음 :

com
 +- test
     +- project
         +- app
         |   +- App.java
         |
         +- resources
         |   +- Resource.java

해결법

  1. ==============================

    1.@SpringBootApplication 주석을 사용하고 있다고 가정합니다. @Configuration, @EnableAutoConfiguration 및 @ComponentScan을 사용하는 것과 동일하다는 것을 알아야합니다.

    @SpringBootApplication 주석을 사용하고 있다고 가정합니다. @Configuration, @EnableAutoConfiguration 및 @ComponentScan을 사용하는 것과 동일하다는 것을 알아야합니다.

    설명서에서

    기본 설정으로 갔으므로 주석이있는 클래스의 패키지에서 검색이 수행됩니다.

    그랬던 것처럼 이동하거나 @ComponentScan에서 basePackages를 지정할 수 있습니다.

  2. ==============================

    2.설명서에서 basePackage를 사용하지 않으려면 기본 클래스를 다른 모든 클래스보다 상위로 유지하는 것이 좋습니다.

    설명서에서 basePackage를 사용하지 않으려면 기본 클래스를 다른 모든 클래스보다 상위로 유지하는 것이 좋습니다.

  3. from https://stackoverflow.com/questions/30593145/restcontroller-not-found-if-main-class-not-in-top-level-package by cc-by-sa and MIT license