티스토리 뷰

반응형

내부 톰캣 서버를 실행하는 진입점이라고 할 수 있는 @SpringBootApplication를 작성한 클래스는 패키지의 최상단 혹은 동일한 레벨에 위치해야 합니다. @SpringBootApplication은 여러가지 어노테이션 기능을 합친 어노테이션입니다. 그 중 하나가 @ComponentScan입니다. 이 어노테이션의 기능은 현재 위치에서 시작해 서브 패키지를 훑으면서 클래스를 스캔합니다. 엉뚱한 패키지에 작성하면 컨트롤러를 못 찾기 때문에 404 에러가 발생하죠.

 

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Mar 30 18:24:57 KST 2021

There was an unexpected error (type=Not Found, status=404).

 

에러원인

Component Scan을 하지 못해서.

 

해결방법

Application main() 클래스의 하위 디렉토리 안에 Component(Controller)가 있어야 한다.

또는 @ComponentScan({"com.ygdad"}) 와 같이 스캔할 패키지를 지정해 준다.

 

패키지의 최상단이라는 의미는 다음과 같습니다. 컨트롤러 클래스가 com.web.controller 패키지에 있다면 메인 메소드가 있는 클래스는 com.web이나 com 패키지에 있어야 합니다. com.web.project에 있다거나 com.ygdad에 있으면 안 됩니다. 같은 계층 구조 안에 있어야 합니다.

반응형
댓글