728x90
이 글은 김영한님의 스프링부트 핵심원리와 활용 강의를 듣고 정리한 것입니다.
main을 실행하면 main에 있는 클래스와 args를 파라미터로 받는 run이라는 메서드가 실행된다.
이 메서드는 2가지 일을 하는데,
첫번째는 내장 톰캣을 실행해주고
두번째는 디스패처 서블릿 생성 및 등록하고 스프링 컨테이너를 생성 및 디스패처 서블릿에 연결한다.
그렇다면 우리가 만든 컨트롤러라던지 클래스들을 스프링 컨테이너가 어떻게 인식하고 작동하는 것일까
그건 run 메서드가 받는 파라미터와 관련이 있다.
run에서 보낸 클래스는 primarySource가 되어 등록이 되는데...
그 클래스에는 main말고는 아무것도 없었는데 어떻게 된 일일까
그것은
@SpringbootApplication 어노테이션에 componentScan 기능이 있기 때문이다
컴포넌트 스캔 어노테이션이 있게되면 해당 클래스를 포함하는 패키지부터 하위 패키지들까지 컴포넌트 스캔 대상이 된다.
그리고 이런 @RestController 라던지하는 어노테이션이 붙은 클래스를 빈으로 등록해준다.
728x90
'study > Spring' 카테고리의 다른 글
Spring boot AutoConfiguration 자동구성 작동 원리 (0) | 2023.07.07 |
---|---|
spring security in action 5-11장 (1) | 2023.04.17 |
spring security in action 3-4장 (0) | 2023.04.13 |
eureka netflix 에는 spring security RSA 가 있다. (0) | 2023.02.06 |
AmigosCode small exercise in Spring Boot Full Stack with React.js (0) | 2022.12.17 |
댓글