들어가기 전

목표

  • IntelliJ에서 gradle을 이용하여 Spring MVC 프로젝트 만들기
  • Tomcat과 연동하여 Hello world 띄우기

과정

  1. IntellJ에서 Gradle 프로젝트 생성 #
  2. Spring MVC project 설정 #
    • 방법1. IntelliJ에서 제공하는 Spring MVC 라이브러리 다운로드 #
    • 방법2. Gradle을 이용한 의존성 주입 #
  3. Artifacts 설정 #
  4. 설정 파일 변경(web.xml) #
  5. index.jsp 작성 #
  6. Tomcat 설정 #

구현 환경

  • macOS X (10.13.6)
  • IntelliJ IDEA (2018.3)
  • Spring MVC (4.3.18, 5.0.8)
  • Gradle (4.6)
  • Tomcat (8.5.32)

1. IntellJ에서 Gradle 프로젝트 생성

Gradle - Java 선택

GroupId, ArtifactId 설정

Gradle 설정.

프로젝트 명, 경로 설정

만들어진 프로젝트 구성

2. Spring MVC project 설정

방법1. IntelliJ에서 제공하는 Spring MVC 라이브러리 다운로드

좌측 상단의 프로젝트명 우클릭 - [Add Framework Support…] 선택

[Spring] - [Spring MVC] 선택

Download를 선택하여 직접 라이브러리를 다운로드합니다. 버전은 4.3.18 입니다.

추가된 Spring MVC 라이브러리 확인

프로젝트의 root 디렉토리 아래에 /lib이 생성 되었고, 거기에 다운로드 받은 라이브러리가 저장된 것을 확인할 수 있습니다. 그리고 IntelliJ에서 자동으로 /web/web/WEB-INF, 설정파일을 자동을 생성해 줍니다.

방법2. Gradle을 이용한 의존성 주입

저는 gradle로 의존성을 주입하여 프로젝트를 관리했습니다.

build.gradle 파일에 Spring MVC 의존성 주입

Spring MVC의 버전은 https://mvnrepository.com에서 5.0 중 가장 많이 쓰이는 것을 사용하였습니다.

  • 참고: MVN repository - Spring Web MVM
    // https://mvnrepository.com/artifact/org.springframework/spring-webmvc
    compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.8.RELEASE'

Gradle import 후 프로젝트 구성

아까와는 달리 External Libraries 아래에 Spring MVC와 dependency 라이브러리들이 설치된 것을 확인할 수 있습니다.

  • build.gradle
    plugins {
    id 'java'
    }

    group 'com.delf.spring'
    version '1.0-SNAPSHOT'

    sourceCompatibility = 1.8

    repositories {
    mavenCentral()
    }

    dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.8.RELEASE'
    }

Framework Support 추가

  • 방법1.에서와 같이 [Add Framework Support…]를 선택하여 [Spring] - [Spring MVC]를 체크해줍니다.
  • 그리고 Download가 아닌 [Use library]를 선택하면, 아까 설치된 Spring MVC 라이브러라가 자동으로 연결됩니다.
  • 추가가 완료되면, 라이브러리에 맞춰 설정 파일과 index.jsp가 생성된 것을 확인할 수 있습니다.

    3. Artifacts 설정

    다음 과정은 자동으로 구성될 수 있습니다만, 설정되지 않았다면 다음과 같은 에러가 발생합니다.
    Connected to server
    Artifact com.delf.spring.spring-store:war exploded: Artifact is being deployed, please wait...
    경고 [RMI TCP Connection(2)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used.
    심각 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
    심각 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [/com_delf_spring_spring_store_war_exploded] startup failed due to previous errors
    Artifact com.delf.spring.spring-store:war exploded: Error during artifact deployment. See server log for details.
    정보 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/Cellar/tomcat@8/8.5.32/libexec/webapps/manager]
    정보 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/Cellar/tomcat@8/8.5.32/libexec/webapps/manager] has finished in [55] ms

Spring MVC 라이브러리에 대한 Artifact를 추가합니다.

  • [File] - [Project Structure] - [Artifacts]
    • Project Structure 설정 단축키 ( + ;)
  • 우측에 있는 Spring과 Spring MVC 라이브러리 더블클릭

  • 추가 완료

4. 설정 파일 변경(web.xml)

변경
<url-pattern>*.form</url-pattern><url-pattern>/</url-pattern>로 변경하는 거 이외에는 모두 같습니다.

  • web.xml
    <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.form</url-pattern> <!--"*.form"을 "/"로 변경-->
    </servlet-mapping>

5. index.jsp 작성

Hello Spring Store! 라는 문구를 출력해보겠습니다.

  • index.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
    <title>Spring Store</title>
    </head>
    <body>
    Hello Spring Store!
    </body>
    </html>

6. Tomcat 설정

우측 상단의 [Add Configuration…] 클릭

좌측 상단의 [+] - [Tomcat Server] - [Local] 선택

[Server] 탭의 [Application server]에서 [Configure…]를 클릭하여 Tomcat Path 설정

하단의 [Fix] 버튼, 혹은 [Deployment] 탭에서 Deploy될 서버 선택

실행, 성공

References