Spring MVC Project

Spring MVC 프로젝트 구조

Spring MVC Project의 구성은 다음 그림과 같다. Java EE Project보다 파일과 폴더가 더 늘어났다.

pom.xml

pom.xml은 Maven Framework의 설정 파일이다. Spring MVC Project는 기본 빌드 시스템으로 Maven Framework를 사용하며, 이를 위한 설정을 pom.xml에 작성할 수 있다.

src

src는 source 폴더로 build에 관여하는 파일들을 배치한다. src는 크게 세 가지로 구분한다.

  • main - build에 포함될 코드를 보관하기 위한 폴더

  • test - build에 포함되지 않는 테스트 코드를 보관하기 위한 폴더

  • webapp

    • 만들어질 Web Application이 반드시 가져야 하는 상위 폴더

    • build 시 src/main의 내용이 /WEB-INF/classes 내부에 포함된다.

등록된 Source Directory는 총 네 개이며, 다음과 같다.

  • src/main/java

  • src/main/resources

  • src/test/java

  • src/test/resources

등록된 경로들은 classpath:로 탐색이 가능하며, 설정을 통해 build 포함 여부를 정할 수 있다.

Test 폴더의 특징

src/test 폴더는 빌드에 포함되지 않을 뿐 아니라 Junit 등 테스트를 위한 라이브러리들을 사용할 수 있도록 설정되어 있다.

WEB-INF

웹 애플리케이션 배포 시 실행하는 컨테이너가 적용해야 하는 설정, 라이브러리, 클래스 요소들이 배치된 폴더이다. 클래스의 경우 src에 있지만 build 과정에서 WEB-INF 내부의 classes 폴더로 이동한다.

web.xml

웹 애플리케이션의 사양(운영 지침)을 명시한 설정파일. Spring 뿐 아니라 Java EE 스펙을 가진 애플리케이션이라면 반드시 존재해야 한다. Spring MVC Project에서는 web.xml에 Core Servlet인 DispatcherServlet을 등록하여 사용할 수 있도록 구성되어 있으며, 각종 Spring 설정 파일에 대한 정보도 이곳에 등록되어 있다.

Q) Spring Boot를 사용하는데 web.xml이 안보입니다

Spring Boot에서는 ServletInitializer 클래스가 web.xml의 역할을 대신한다.

spring

스프링 설정이 위치한 폴더

root-context.xml

Spring 전역(Global) 설정 파일.

이 파일에서 설정한 내용들은 하위 요소인 servlet-context.xml 에서 사용 가능하다.'

servlet-context.xml

Spring DispatcheServlet에 대한 설정 파일

요청에 대한 처리 내용을 작성한다.

lib

라이브러리가 추가될 폴더. Maven Framework를 사용하므로 직접 추가하지 않고 pom.xml 설정을 통해 추가한다.

views

화면에 출력하기 위한 View(JSP) 파일이 존재하는 위치. 기본적으로 제공되는 home.jsp가 있으나 필수 코드가 없는 과거 버전이므로 사용하지 않는다.

log4j.xml

Java 진영의 Logging Framework인 Log4j의 설정 파일이다.

target

Maven Build 수행 시 결과물이 저장되는 폴더이다. 시간이 저장되며 build 시 매번 변경되므로 Git과 같은 버전 관리 도구에서 충돌의 주요 원인이 된다. .gitignore 설정으로 업로드에서 제외한다.

Last updated