IntelliJ MAVEN + Spring MVC 기본 프로젝트 생성하기
MAVEN으로 프로젝트 생성하기
이름 설정하기
GroupID는 프로젝트에서 도메인과 같아야 된다. 예를 들어 GroupID를 com.ihp001로 할 경우 컨트롤러의 패키지 이름을 com.ihp001.Controller 같은 식으로 해야한다.
Artifactid는 프로젝트 이름(Name)과 같게 만든다.
Finish.
Spring MVC 프레임워크 올리기
Add Framework Support을 누른다.
Spring MVC 5.2.3.RELEASE 선택. OK.
applicationContext.xml, dispatcher-servlet.xml, web.xml 등의 주요 파일들이 생성된다.
Tomcat 설정하기
오른쪽 상단의 Add Configuration 선택.
Tomcat을 추가해야 하는데 Templetes에서 설정하지 말고 꼭 +를 선택해서 추가해야 한다!!!
Tomcat Server의 Local 선택.
fix를 누른다.
맨밑의 Application context를 /로 바꾼다. home url을 /로 바꾸기 위함.
pom.xml 파일 수정하기
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.2.3.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
pom.xml properties와 dependency 부분.
주의해야 할점
properties의
lib 디렉터리에 maven으로 받아온 것 추가하기
Ctrl + Alt + Shift + s로 Project Structure를 실행시키고 Project Settings → Artifacts로 이동. 오른쪽에 있는 파일들을 더블 클릭하여 왼쪽의 lib로 모두 이동시킨다.
web.xml 수정하기
url-pattern부분을 / 으로 수정한다.
간단한 컨트롤러로 웹서버 테스트하기
src/main/java 디렉터리에 com.ihp001.controller 형식으로 패키지를 생성한다. 그리고 해당 패키지에 HomeController class 파일을 생성한다.
// homecontroller.java
package com.ihp001.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/home/*")
public class HomeController {
@GetMapping("test")
public @ResponseBody
String homeTest() {
return "Spring + Maven";
}
}
dispatcher-servlet.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.ihp001.controller" />
</beans>
context:component-scan 부분을 본인의 패키지에 맞게 추가한다.
Tomcat 실행하기
shift + f10으로 tomcat을 실행시킨다.
/home/test로 가면 우리가 return한 Spring + Maven을 볼 수 있다.