이번 시간에는 기존에 작성하였던 dispatcher-servlet.xml 파일을 여러 개의 파일로 나누어 분리하려고 한다. 파일을 분리하는 이유는 협업하는 사람이 있을 경우 각 기능에 따라 해당되는 부분을 나눠서 작업함으로써 일의 효율성을 높이기 위함이다.
이를 위해 우선 WEB-INF 폴더 내에 새로운 폴더를 생성하고 해당 폴더 내에 기존 dispatcher-servlet.xml 파일을 복사하여 총 3개의 xml 파일을 생성해주었다. 파일명의 경우 지정된 형식은 없으며 원하는 이름으로 작성할 수 있다.(여기서 새로 생성된 3개의 xml 파일은 모두 코드 구현이 안되어있는 상태임)
이후 dispatcher-servlet.xml 파일을 열고 기능에 따라 위 3개의 xml 파일에 코드를 복사해준다. 참고로 security-context 파일의 경우 아직 보안과 관련되어 구현된 부분이 없기 때문에 비어두었다.
이후 기존에 사용하던 dispatcher-servlet.xml 파일의 경우 삭제해도 좋고, 확장자 명을 바꾸어 보관해놓아도 괜찮다.
이제 바뀐 파일 명과 위치를 디스패처(Dispatcher)에게 알려주기 위해 web.xml 파일을 열고 다음과 같이 코드를 추가해준다.
<servlet> 태그 안에 있는 <init-param> 태그에서는 파라미터를 하나만 지정할 수 있기 때문에 나머지 두 개의 파일을 마저 지정해주기 위한 <listener> 태그를 추가하였다. <listener> 태그는 톰캣(Tomcat)이 시작되거나 끝날 때 또는 세션(Session)이 시작되거나 끝날 때 실행되는 이벤트를 처리하기 위한 것이다.
이제 페이지를 실행하여 결과를 확인한다.
추가 사항
서블릿 설정을 미리 올려놓고 작업을 수행하기 위해서는 web.xml 파일의 <servlet> 태그 안에 다음과 같은 코드를 추가해줄 수 있다.
위처럼 하면 톰캣이 시작될 때 서블릿을 로드할 수 있다. 만약 로드해야할 서블릿이 여러개 존재한다면 태그 사이에 숫자를 집어넣어 우선순위를 정해줄 수도 있다.
추가로 로드되는 방식을 비동기적으로 수행하고 싶다면 다음과 같이 설정해줄 수 있다.
'🍃 Spring, Spring Boot > 스프링 프레임워크 기초' 카테고리의 다른 글
[Java / Spring] 19. Root / HomeController (0) | 2022.04.25 |
---|---|
[Java / Spring] 18. Annotation 활용하기 (0) | 2022.04.23 |
[Java / Spring] 16. 데이터 서비스 클래스 준비 및 객체 사용하기 (0) | 2022.04.23 |
[Java / Spring] 15. Tiles 설정하기 (0) | 2022.04.21 |
[Java / Spring] 14. 컨트롤러 추가 및 페이지 모듈 분리 (0) | 2022.04.21 |