일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링시큐리티
- spring formatter
- 그래프큐엘
- 비기능적 요구사항
- jpa lazy
- 스프링부트 도커
- IOC
- 생성자주입
- 스프링di
- fetch join
- method refetence
- open-session-in-view
- 도커 이미지 빌드
- 수정자주입
- 정적팩토리메서드
- Atomicity
- 소프트웨어의 품격
- kotlin 리팩터링
- java predicate
- 스프링 시큐리티 설정
- kotlin ::
- 동적파라미터
- 기능적 요구사항
- jpa no session
- 토비의 스프링
- ioc컨테이너
- 자바 필터
- 스프링
- 스프링 포매터
- Spring
- Today
- Total
공부기록
[spring] web.xml 해석. 본문
스프링은 웹 어플리케이션의 시작과 종료시 발생하는 이벤트를 처리하는 리스너인 ServletContextListener
를 이용한다. 이 인터페이스를 구현해서 웹 애플리케이션이 시작될 때 루트애플리케이션 컨텍스트를 만들어 초기화하고, 웹 어플리케이션이 종료될 때 컨텍스트를 함께 종료하는 기능을 가진 리스너를 만들 수 있다. 스프링은 이러한 기능을 가진 위와 같은 ContextLoaderListener
를 제공한다.
ContextLoaderListener
는 웹 어플리케이션이 시작할 때 자동으로 루트 애플리케이션 컨텍스트를 만들고 초기화해준다. 이 루트 어플리케이션의 디폴트 설정은 다음과 같다.
- 애플리케이션 컨텍스트 클래스 :
XmlWebApplicationContext
- XML 설정파일 위치 :
/WEB-INF/applicationContext.xml
만약 디폴트 설정을 바꾸고 싶다면 아래와 같이 작성해주자.
이렇게 작성한다면 디폴트설정인 /WEB-INF/applicationContext.xml
은 무시하고, /WEB-INF/spring/appServlet/servlet-context.xml
로 루트어플리케이션이 설정되게 된다.
각 DispatcherServlet은 서블릿이 초기화될 때 자신만의 컨텍스트를 생성하고 초기화한다. 동시에 루트 애플리케이션 컨텍스트를 찾아서 자신의 부모 컨텍스트로 사용한다.
디폴트 설정은 다음과 같은 규칙으로 적용된다./WEB-INF/ + 서블릿네임스페이스 + .xml
여기서 서블릿네임스페이스는 servlet-name의 값에 '-servlet'을 붙여서 만든다.
ex)
servlet-name이 spring이라면 네임스페이스는 spring-servlet이 된다
이 경우에 디폴트 설정파일 위치는 /WEB-INF/spring-servlet.xml 이 된다.
만약 디폴트 설정파일 위치를 바꾸고 싶다면 위 이미지의 <init-param>
을 이용하면 된다.
위 이미지와 같이 설정할 경우 /WEB-INF/appServlet-servlet.xml
이 아니라,
설정파일 위치는 /WEB-INF/spring/appServlet/servlet-context.xml
이 된다.
'Spring' 카테고리의 다른 글
[SPRING] AOP? 핵심기능과 부가기능의 분리. (1) | 2019.08.04 |
---|---|
[SPRING] 빈 클래스 자동인식 네가지 스테레오타입 어노테이션 (0) | 2019.08.03 |
[SPRING] @Component 사용해서 Bean으로 등록해보자 (1) | 2019.08.03 |
[SPRING]MockMvc를 이용한 테스트 (0) | 2019.07.28 |
[토비의 스프링] 스프링이 대부분의 객체를 singleton으로 제공해주는 이유 (0) | 2019.07.26 |