Spring | Spring MVC | Bean정의 파일

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:context="http://www.springframework.org/schema/context"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
    http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.2.xsd
    http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

 <context:component-scan base-package="spring.test" />

 <mvc:annotation-driven />

 <bean
   class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/" />
    <property name="suffix" value=".jsp" />
 </bean>
</beans>

처음에 component-scan 요소는 지정한 패키지 아래에 있는 어노테이션을 적용한 클래스를 자동으로 로딩한다. 로딩하는 어노테이션은 @Controller, @Service, @Component, @Repository 등이 있다.

다음 annotation-driven 요소는 Spring Web MVC를 하기 위해 설정해야 하는 값들이 자동으도 로딩해준다. 해당 설정 어노테이션은 @RequestMapping, @ModelAttribute, @SessionAttribute, @RequestParam 등이 있다.

마지막으로 org.springframework.web.servlet.view.InternalResourceViewResolver을 선언하고 있다. 이것이 jsp 파일의 위치를 지정해 준다. prefix와 suffix를 선언하고 있고, 컨트롤의 반환 값 문자열과 함께 다음 jsp 파일이 적용된다.

prefix문자열 + 컨트롤의 반환 문자열 + suffix문자열

예를 들자면, 컨트롤에서 반환한 값이 test라면

"/WEB-INF/" + test + ".jsp" > "/WEB-INF/test.jsp" 

이밖에 Csv 다운로드, Excel 다운로드 등보기 다운로드시킬 때는org.springframework.web.servlet.view.XmlViewResolver를 지정한다 이는 다음 기회에 설명한다.

<mvc:resources> 요소

이미지, CSS, JS 등 정적 리소스 파일에 액세스할 때, 다음과 같이 액세스할 디렉토리를 선언한다.

<mvc:resources mapping="/image/**" location="/WEB-INF/image/" />

위의 디렉토리에 이미지를 표시하는 jsp은 다음과 같이 작성한다.

<img src="./image/test.png"/>