Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다.
톰캣이 실행되면 web.xml 동작 -> 디스패처서블릿(프론트컨트롤러+리쿼스트 서블릿) 동작 - 컴포넌트 스캔(src 내부의 모든 파일을 어노테이션 기반으로 스캔해서 필요한 것들을 메모리에 띄운다.(객체를 ApplicationContext에 등록) (@Controller, @RestController, @Configuration, @Repository, @Service, @Component 등 이미 스프링이 정해놓은 것들 & 커스텀해서 만들 수도 있음) & 메모리에 띄워진 것을 각각 처리할 곳으로 보냄
web.xml에서 디스패처 서블릿으로 넘어갈 때, ContextLoaderListener가 먼저 실행됨. - DB 커넥션 관리 등 공통적으로 처리해야되는 것들(root-context.xml에 정의되어있음)
ApplicationContext는 싱글톤으로 관리 - 어디에서 접근하든 동일한 객체라는 것을 보장
2가지 종류: root-applicationContext(최상단에서 관리 - Service에 접근, Repository에 접근)와 servlet-applicationContext(웹과 관련된 어노테이션 관리 - Controller, ViewResolver, HandlerMaping 등)
- static으로 선언된 메서드: main 메서드가 실행되기 전부터 메모리에 떠있어야함. - 자원 하나를 공유해서 사용
- java 파일: 객체가 생성되었다가 사라짐.
필요한 객체를 BeanFactory에 등록할수도 있음. - @Bean을 붙여서 메모리에 띄운다. - 필요할 때 DI하여 사용한다. Bean Factory에 로드되는 객체들은 미리 로드되지 않고 필요할 때 호출하여 로드하기 때문에 lazy-loading이 된다는 점이다.
'인프런 - 스프링부트 개념 정리(이론) - 정리' 카테고리의 다른 글
14강 - 스프링부트가 응답(Response)하는 방법이 궁금해요! (0) | 2023.04.05 |
---|---|
12강 - 디스패처 서블릿이 무엇인가요? (0) | 2023.03.29 |
11강 - 웹 배포서술자(web.xml)에 대해서 알려줘요! (0) | 2023.03.29 |
10강 - 서블릿 객체의 생명주기가 궁금해요! (0) | 2023.03.22 |
9강 - 톰켓이란 무엇인가요? (0) | 2023.03.22 |