[210812] Spring 설정(3) - servlet-context.xml

해니·2021년 8월 12일
0

servlet-context.xml (webapp/WEB-INF/spring 폴더)

servelt 각자의 Bean들이 모인 공간 (개별 부분)
-> root-context는 공통 ! servlet-context는 개별!
web.xml에서 작성한 DispatcherServlet의 설정을 기록하는 파일
웹 어플리케이션에서 클라이언트의 요청을 받기 위한 컨텍스트 설정이며, 요청과 관련된 객체를 정의함.
어노테이션 설정 (annotation-driven)
URL 관련 설정


<!-- 스캔한 패키지 내부의 클래스 중 
Controller 어노테이션을 가지고 있는 클래스들을 Controller로 로딩하도록 한다 -->
<annotation-driven />

<!-- 정적파일(이미지, 사운드, 동영상, JS, CSS 등등) 경로 셋팅 -->
<!--
mapping : 매핑 URI 설정, ocation : 정적 리소스 위치 설정
-->
<!--
resources 폴더 아래에 있는 정적 파일들(.png, .css, .js 등 URL로 접근이 가능한 정적 파일)에
접근할 때는 DispatcherServlet을 거쳐서 Controller에 갔다가 다시 JSP를 거쳐서 보여주지만
아래와 같은 태그로 설정을 하면 위와 같은 과정을 거치지 않고 바로 접근 가능하다는 뜻 !!
-->
<!--
resources 폴더 아래에 있는 정적 파일들을 막바로 다운 받을 수 있다 ~!
-->

<resources mapping="/resources/**" location="/resources/" />


<!-- prefix와 suffix에 등록된 value를 참조하여 --!>
<!--/WEB-INF/views/파일명.jsp가 실행됨-->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<beans:property name="prefix" value="/WEB-INF/views/" />
	<beans:property name="suffix" value=".jsp" />
</beans:bean>

<!-- 스캔할 bean들이 모여있는 패키지를 지정한다. -->
<!-- 서블릿을 운영하기 위한 정보를 가지고 있는 파일 -->
<context:component-scan base-package="com.doota.test" />

<!-- 외부 프로퍼티 파일 로딩하도록 설정 -->
<!-- /resources 경로에 있는 .properties로 끝나는 파일을 사용하겠다 -->
<context:property-placeholder location="/resources/*.properties"/>

annotation-driven

스프링 MVC에서 어노테이션(@) 사용을 가능하게 해줌.(기본값)
스캔한 패키지 내부의 클래스 중 Controller 어노테이션을 가지고 있는 클래스들을 Controller로 로딩하도록 함.

resources

정적인 html 문서 같은 리소스들(resources)의 정보를 기술함.

ViewResolver

view 실행 단계에서 xml에서 등록된 viewResolver를 참조함
JSP와 name을 매핑시켜주는 태그
Controller의 메서드에서 반환하는 문자열 앞(prefix, 접두사) 뒤(suffix, 접미사)에 붙힐 경로 정보를 셋팅
-> 사용자가 일일이 전체경로와 파일명을 붙이지 않아도 되도록 도와줌

context:component-scan

해당 패키지에 있는 파일들의 어노테이션을 스캔해서 bean으로 등록하는 역할

context:property-placeholder

외부 property에 저장된 정보를 스프링 설정 파일에서 사용할 수 있도록 함

출처
Spring Core - Context 1편

0개의 댓글