✅흐름정리 (서블릿 컨테이너, 스프링 컨테이너 직접 구현 ~ 스프링 부트가 만든것 사용)

Sol's·2023년 5월 28일
0

토비의 스프링 부트

목록 보기
14/31

여태까지 공부했던 내용을 정리해보겠습니다.
경험상 공부를위해 복습없이 앞으로만 가다보면 항상 공부하는 목적이 무엇인지 까먹고
길을 잃었기 때문입니다.
이번에 토비의 스프링을 공부하면서 배우고자 하는것은 스프링의 원리를 알고 배우면서
객체지향 설계와 유지보수에 좋은 코드를 어떻게 스프링은 작성하였는가를 알아보는 것이였습니다.

흐름도

서블릿 컨테이너 생성 -> 스프링 컨테이너 생성 -> 스프링이 제공하는 서블릿 컨테이너 사용(DispatcherServlet)

서블릿 컨테이너 직접 만들기

우선 스프링은 Containerless입니다.
즉, 서블릿 컨테이너, 스프링 컨테이너를 만들지 않아도 제공한다는 뜻입니다.

그것을 확인하기위해 직접 서블릿 컨테이너를 만들고,
서블릿 객체를 주입하여 실습해보았습니다.

그 과정에서 서블릿의 역활과
FrontController 패턴이 무엇인지 알아보았고
스프링 부트에서는 DispatcherServlet이그 역할을 하는것을 알게되었습니다.

서블릿 컨테이너를설정하는것은 매우 귀찮은 일이였는데, 스프링이 알아서 만들어주니 너무 편리하다는 것을 꺠달았습니다.

스프링 컨테이너 직접 만들기

역시 스프링 컨테이너도 컨테이너이기 떄문에 스프링이 만들어 줍니다!

그것을 확인하기 위해 직접 스프링 컨테이너에 Bean을 주입하고 활용해 보았습니다.

그 과정에서 어떻게 Bean을 설정하는지, 그리고 우선순위는 어떤 방법으로 정하는지 (xml, 팩토리 메서드 패턴, 어노테이션)
알아보았습니다.

스프링 컨테이너를 설정하는것도 귀찮은데 스프링 부트가 알아서 해주니 너무 편했습니다!

profile
배우고, 생각하고, 행동해라

0개의 댓글