본문 바로가기
study/Spring

Spring boot 실행 작동 원리

by stilinski 2023. 7. 7.
728x90

이 글은 김영한님의 스프링부트 핵심원리와 활용 강의를 듣고 정리한 것입니다.

 

main을 실행하면 main에 있는 클래스args를 파라미터로 받는 run이라는 메서드실행된다.

이 메서드는 2가지 일을 하는데,

첫번째는 내장 톰캣을 실행해주고

두번째는 디스패처 서블릿 생성 및 등록하고 스프링 컨테이너를 생성 및 디스패처 서블릿에 연결한다. 

 

 

그렇다면 우리가 만든 컨트롤러라던지 클래스들을 스프링 컨테이너가 어떻게 인식하고 작동하는 것일까

그건 run 메서드가 받는 파라미터와 관련이 있다.

run에서 보낸 클래스는 primarySource가 되어 등록이 되는데...

그 클래스에는 main말고는 아무것도 없었는데 어떻게 된 일일까

 

그것은

@SpringbootApplication 어노테이션에 componentScan 기능이 있기 때문이다

컴포넌트 스캔 어노테이션이 있게되면 해당 클래스를 포함하는 패키지부터 하위 패키지들까지 컴포넌트 스캔 대상이 된다.

 

그리고 이런 @RestController 라던지하는 어노테이션이 붙은 클래스를 빈으로 등록해준다.

 

 

 

728x90

댓글