[Spring] 기본 프로젝트 파일 구조

STS로 새 프로젝트를 생성하면 아래와 같은 기본 구조를 확인할 수 있다. Maven의 기본 디렉토리 설정인 것 같다. 개발자마다 설정 및 사용 용도가 조금씩 다른듯 하다. (https://slipp.net/questions/11)

spring_files_by_sts

src/main/java

  • Java source 디렉토리
    • Java 파일들은 모두 이 디렉토리에 생성한다.
    • HomeController.java
      • Web client로부터의 요청을 해당 비즈니스 로직으로 분기 및 수행 결과를 응답하는 역할.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// @RequestMapping이 jsp로부터 들어온 요청에 해당하는 비즈니스 로직을 찾아주는 역할
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
// formattedDate 를 "serverTime"이라는 이름으로 알려준다.
model.addAttribute("serverTime", formattedDate );
// 수행 결과의 응답을 home.jsp 로 보낸다는 의미
return "home";
}

src/main/resources

  • Resources들(설정 파일, img, js, css 등)이 저장되는 디렉토리.
    • [추측] src/main/webapp/resources 에 저장한 static resource들을 빌드 시 이쪽으로 copy하는 것으로 보이며 이쪽으로 copy된 resource들은 classpath를 통해 접근할 수 있다고 한다.
  • log4j.xml
    • Logging 설정 파일

Maven Dependencies

  • Maven을 사용하기 위한 라이브러리들

Apache Tomcat v7.0 [Apache Tomcat v7.0]

  • Tomcat 사용을 위한 라이브러리들

JRE System Library

  • Java를 사용하기 위한 Java Runtime Environment 관련 라이브러리들

src/main/webapp

  • Maven의 기본 폴더.
  • 이 아래 모든 jsp 및 js 파일이 포함된다.

resources

  • Web service에 사용할 static resource들을 저장하는 디렉토리.

WEB-INF

classes

spring

  • root-context.xml
appServlet
  • Servlet 설정 파일
  • servlet-context.xml

views

  • JSP 디렉토리. 실제 page들이 여기에 위치한다고 보면 된다.
  • home.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<!-- HomeController.java에서 넘겨준 "serverTime"을 여기에서 출력한다. -->
<P> The time on the server is ${serverTime}. </P>
</body>
</html>

web.xml

  • 서블릿 배포 기술자 (설정 파일)
  • WAS (Web Application Server) 즉, TOMCAT이 구동될 때, WEB-INF 디렉토리에 존재하는 web.xml를 읽어와서 Web application 설정을 구성한다.

target

  • 빌드 결과가 출력되는 디렉토리

pom.xml

  • Project Object Model 로 Maven project와 관련된 설정들이 저장되는 파일이다.
    • 프로젝트 기본 정보
    • 빌드 설정
    • 프로젝트 관계 설정
    • 빌드 환경
    • Property 관리

참조

Share