📗 스프링 Spring

[스프링/Spring] Spring MVC 세팅 XML

핑크빛연어 2021. 5. 13. 13:53

 

Spring MVC 프로젝트 세팅 시 xml 로 환경설정을 세팅하는 방법입니다.

web.xml 파일을 이용해서 스프링 웹 어플리케이션의 환경설정을 세팅할 수 있습니다.

 

 

 

프로젝트명/WebContent/WEB-INF 경로에 config 폴더를 만들고 해당 경로에 servlet-context.xml 와 root-context.xml 를 생성합니다.

 

 

 

작성 및 수정한 파일 목록 입니다.

 

1. pom.xml

2. web.xml

3. servlet-context.xml

4. root-context.xml

 

 

 

1. pom.xml

servlet , jsp , jstl, spring 의존성을 추가하기 위해

servlet-api, jsp-api, jstl, springWebMVC 라이브러리를 설정합니다.

	<!-- 라이브러리 버전 관리 -->
	<properties>
		<javax.servlet-version>4.0.1</javax.servlet-version>
		<javax.servlet.jsp-version>2.3.3</javax.servlet.jsp-version>
		<javax.servlet.jsp.jstl-version>1.2</javax.servlet.jsp.jstl-version>
		<org.springframework-version>4.3.25.RELEASE</org.springframework-version>
	</properties>
	<!-- 라이브러리 셋팅 -->
	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>${javax.servlet-version}</version>
			<scope>provided</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>${javax.servlet.jsp-version}</version>
			<scope>provided</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>${javax.servlet.jsp.jstl-version}</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
	</dependencies>
	

 

 

 

2. web.xml

클라이언트로 부터 요청이 들어오면 DispatcherServlet 이 전달 받는다.

web.xml 에서 appServlet 이라는 이름으로 servlet 을 정의하고 appServlet 을 통해 DispatcherServlet 을 지정.

 

 

<servlet-mapping><url-pattern>/</url-pattern> : 웹 어플리케이션이 실행될 때, url에 아무요청이 없다면 appServlet이 실행된다.

 

<servlet><param-value>/WEB-INF/config/servlet-context.xml</param-value> : Spring MVC 의 servlet 설정을 servlet-context.xml 로 지정한다

 

<context-param> : 프로젝트 수행 시 사용할 Bean 들의 정의하는 파일 지정

 

<listener> : 리스터 설정

 

<filter><filter-name>encodingFilter</filter-name> : 파라미터 인코딩 필터 설정

 

 
 <!-- 현재 웹 애플리케이션에서 받아들이는 모든 요청에 대해 appServlet이라는 이름으로 정의되어 있는 서블릿을 사용하겠다. -->
 <servlet-mapping>
   <servlet-name>appServlet</servlet-name>
   <url-pattern>/</url-pattern>
 </servlet-mapping>
 
 <!-- 요청 정보를 분석해서 컨트롤러를 선택하는 서블릿을 지정한다. -->
 <servlet>
   <servlet-name>appServlet</servlet-name>
   <!-- Spring MVC에서 제공하고 있는 기본 서블릿을 지정한다. -->
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <!-- Spring MVC 설정을 위한 xml 파일을 지정한다. -->
   <init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/config/servlet-context.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
 </servlet>
    
<!-- Bean을 정의할 xml 파일을 지정한다. -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/config/root-context.xml</param-value>
</context-param>
    
<!-- 리스너 설정 (BeanFactory 지정)-->
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 파라미터 인코딩 필터 설정 -->
<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
    
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

 

 

3. servlet-context.xml

서블릿 영역을 설정합니다.

 

<annotation-driven/> : Spring MVC 에서 정상적으로 어노테이션을 사용할 수 있도록 한다.

ViewResolver : WEB-INF/views/ 경로 아래에 있는 .jsp (모든 jsp파일)을 찾아서

   Controller 의 메서드에서 반환하는 문자열과 일치하는 뷰객체를 반환하겠다고 설정

<resources mapping="/**" location="/resources/"/> : views 에서 사용할 정적 파일들(이미지, 사운드, js, css 등) 이 배치될 경로 지정

 

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/mvc"
			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xmlns:beans="http://www.springframework.org/schema/beans"
			 xmlns:context="http://www.springframework.org/schema/context"
			 xsi:schemaLocation="http://www.springframework.org/schema/mvc
			 http://www.springframework.org/schema/mvc/spring-mvc.xsd
			 http://www.springframework.org/schema/beans
			 http://www.springframework.org/schema/beans/spring-beans.xsd
			 http://www.springframework.org/schema/context
			 http://www.springframework.org/schema/context/spring-context.xsd">
			 					 
	<!-- 스캔한 패지키 내부의 클래스 중 Controller 어노테이션을 가지고 있는 클래스들을 Controller로 로딩하도록 한다 -->
	<annotation-driven/>
	
	<!-- 스캔할 bean들이 모여있는 패키지를 지정한다. -->
	<context:component-scan base-package="com.my.spring.*"/>
    <!-- <context:component-scan base-package="com.my.spring.controller"/> -->
	
	<!-- Controller의 메서드에서 반환하는 문자열 앞 뒤에 붙힐 경로 정보를 셋팅한다. -->
	<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>
	
	<!-- 정적파일(이미지, 사운드, 동영상, JS, CSS 등등) 경로 셋팅 -->
	<resources mapping="/**" location="/resources/"/>
	
			 
</beans:beans>

 

 

 

4. root-context.xml

프로젝트의 어플리케이션 영역을 설정합니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
	   					   http://www.springframework.org/schema/beans/spring-beans.xsd">
	   					   
</beans>

 

 

 

🌲🌳🌴🎋

 

 

 

728x90
반응형