Spring 설정 파일 분리

Codren·2021년 8월 23일
0
post-custom-banner

Section 1. dispatcher-servlet.xml

1. 설정 파일 분리의 필요성

  • 하나의 설정파일에 모든 설정을 선언하면 유지보수에 적절하지 않음
  • 현업에서 파트별로 개발할 때, 하나의 설정파일로 협업을 진행하다보면 충돌 문제가 발생할 가능성 큼




2. dispatcher-servlet.xml 분리

  • servlet-context : Controller, Resolver, Tiles, static 설정 등..
  • service-context : DB 관련 service 객체 등..
  • security-context : 프로젝트 보안 관련 객체 등..




3. web.xml

  • 현재 설정은 톰캣이 모든 url 요청을 DispatcherServlet 서블릿에게 전달함
  • DispatcherServlet 은 기본적으로 WEB-INF 폴더내에서 dispatcher(name)-servlet.xml 을 참고
  • 변경을 위해서는 해당 서블릿에게 참조할 디렉토리와 파일명을 새로 지정해줘야함 (setter)




4. contextConfigLocation 설정

  • DispatcherServlet 이 수행될 때 Listener를 이용(참조)
  • DispatcherServlet 은 url 요청이 오면 생성됨. 처음 요청에는 속도가 느리기 때문에 톰캣이 실행되면 바로 실행 되도록 load-on-startup 1순위 지정
  • contextConfigLocation - 설정 파일의 정보를 지정하는 setter 메서드 이름
// init-param을 통해 하나의 설정파일 정보만 지정할 수 있음
<init-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/spring/servlet-context.xml</param-value>
</init-param>

// 톰캣의 시작,종료,세션연결 시 이벤트 처리에 사용되는 것 
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

// 리스너의 기본 파라미터는 context-param 이용하여 지정가능
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>
		/WEB-INF/spring/service-context.xml
		/WEB-INF/spring/security-context.xml
	</param-value>
</context-param>

// 톰캣이 실행되면 1순위로 같이 실행되도록 지정
<load-on-startup>1</load-on-startup>

// 비동기로 수행될 수 있도록 지정
<async-supported>true</async-supported>
post-custom-banner

0개의 댓글