일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JPA예제
- 자료구조공부
- 스프링부트공부
- 카프카
- 기술면접공부
- Kafka
- nestjs
- Axon framework
- 스프링 공부
- JPA 공부
- querydsl
- 알고리즘공부
- K8S
- 스프링
- DDD
- 플러터 공부
- 코테준비
- 코테공부
- 플러터 개발
- nestjs스터디
- JPA스터디
- 스프링부트
- 프로그래머스
- JPA
- JPA공부
- nestjs공부
- 스프링공부
- Flutter
- 자바공부
- 기술공부
- Today
- Total
DevBoi
[Spring] root, servlet context, web.xml 본문
web.xml
web.xml은 설정을 위한 설정 파일이다.
WAS가 처음 구동될때 web.xml을 읽어, 웹 애플리케이션 설정을 구성한다.
DispatcherServlet을 등록해주면서 스프링 설정 파일을 지정한다.
DispatcherServlet은 초기화 과정에서 지정된 설정 파일을 이용해 스프링 컨테이너를 초기화 시킨다.
web.xml은 초기 로드시 로드해야하는 xml들에 대한 정의 이다.
WAS가 최초로 구동될때 각종 설정을 정의 해주는, 설정에 대한 경로를 정의해주는 파일이다.
web.xml에서 두가지 전부 로드된다.
root-context
servlet-context
*root-context
root-context에 등록되는 빈들은 모든 컨텍스트에서 사용가능하다.
service,dao포함, 웹 환경에 독립적인 빈들을 담아둔다.
서로다른 servlet-context에서 공유해야 하는 빈들을 등록해놓고 사용할 수 있다.
servlet-context 내 빈들은 이용이 불가하다.
service,dao,db등 비즈니스 로직관련 설정을 해준다.
* servlet-context
servlet-contet에 등록되는 빈들은 해당 컨텍스트에만 사용할수있다.
DispatcherServlet이 직접 사용하는 컨트롤러를 포함한 웹관련 빈을 등록하는데 사용한다.
독자적인 컨텍스트들을 가지면서 root-context내 빈사용이 가능하다.
어노테이션, ViewResolver,Interceptor,MultipartResolver등을 서블릿 컨텍스트에 등록한다.
즉, 요청과 관련된 객체를 정의한다.
MVC에서 View와 관련된 객체를 정의한다.
root-context는 service,dao등이 등록이 되고, 공유가 가능한 빈들이 등록이 된다.
반면, servlet-context는 해당 컨텍스트 내에 있는 빈만 사용가능하다 controller등이 등록이 된다.
만약 두 빈이 곂치면, servlet-context의 빈을 우선시 등록한다.
Servlet이 3.0스펙으로 업그레이드 되면서, web.xml없이 동작이 가능해졌다.
해당 설정을 WebApplicationInitalizer인터페이스를 구현하여 대신 할수 있고,
프로그래밍적으로 Spring IOC컨테이너를 생성하여, ServletCOntext에 추가할수있도록 변경되었기 때문이다.
'Develop > [Spring]' 카테고리의 다른 글
[Spring] Transactional (0) | 2022.03.28 |
---|---|
[Spring] RequestBody, RequestParam, ModelAttribute (0) | 2022.03.28 |
[Spring] Maven 이란 (0) | 2022.03.28 |
[Springboot] starter dependency (0) | 2022.03.28 |
[SpringBoot] AutoConfiguration (0) | 2022.03.28 |