[IntelliJ] 인텔리제이 Spring MVC 프로젝트 설정하기
버전>
IntelliJ 인텔리제이 얼티메이트 2020.1
자바 1.8
톰캣 8.0
Spring 5.2.3
1. 프로젝트 생성하기
2. Maven 선택 , 자바 버전 확인
3.프로젝트 정보 입력한다.
4. pom.xml 내용 넣기
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tistory.devmg</groupId>
<artifactId>devmg</artifactId>
<packaging>war</packaging>
<dependencies>
<!-- spring webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- JSTL Dependency -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Servlet Dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
내용을 넣고 오른쪽에 작은 아이콘으로 보이는 maven 리프레시를 누른다. 그럼 의존성을 다운로드한다.
4. 자바단 패키지를 생성한다. (컨트롤러 서비스 다오의 루트가 되는 곳이다.)
File -> Project Structue을 누르고 Modules을 누르고 프로젝트 명을 클릭하고 Sources탭에서 src/main/java 폴더 우클릭하고 기본 Sources영역으로 지정한다.
java폴더 우클릭 > New > Package를 누르고 com.tistory.devmg.home.controller 패키지를 생성한다.
컨트롤러 자바를 생성하기 위한 경로다.
5. webapp폴더 생성 및 web.xml 파일 생성
File -> Project Structue을 누르고 Modules에서 상단 [+] 버튼을 누르고 Web을 선택한다.
Web탭을 누르면 오른쪽에서
- Deployment Descriptors의 Path의 내용을
프로젝트경로/src/main/webapp/WEB-INF/web.xml로 변경한다.
- Web Resource Directories의 Web Resource Directory의 내용을
프로젝트경로/src/main/webapp로 변경한다.
인텔리제이는 웹루트 경로가 다르기 때문에 이클립스나 sts의 기본 경로로 구성 했다.(편의상)
6. web.xml 내용 넣기
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>Spring MVC</display-name>
<!-- Root context -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- servlet context -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
root-context.xml와 servlet-context.xml를 만들어야한다.
WEB-INF에 Spring Config파일로 root-context와 servlet-context를 생성한다.
상위폴더 우클릭 > New > Xml Configuration File > Spring Config 선택
root-context.xml은 그냥 파일만 생성한다. 내용은 없어도 된다. servlet-context.xml의 내용을 넣는다.
servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- This tag registers the DefaultAnnotationHandlerMapping and
AnnotationMethodHandlerAdapter beans that are required for Spring MVC -->
<mvc:annotation-driven />
<!-- This tag allows for mapping the DispatcherServlet to "/" -->
<mvc:default-servlet-handler />
<!-- Process annotations on registered beans like @Autowired... -->
<context:annotation-config/>
<!-- 컴포넌트 스캔 -->
<!-- src/main/java 폴더를 소스폴더로 지정해야지 컴포넌트 스켄 오류가 사라진다-->
<context:component-scan base-package="com.tistory.devmg" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
아까 4번 단계에서 com.tistory.devmg.home.controller 자바 패키지를 생성했는데
com.tistory.devmg.home.controller 이 부분이 컴포넌트 스캔의 영역이다.
추후 경로는 com.tistory.devmg.home.service / com.tistory.devmg.home.dao 이런식으로 경로를 지정하기 위해서다.
7. HomeController.java 생성
package com.tistory.devmg.home.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping("/home")
public String home(){
System.out.println("홈 컨트롤러 호출");
return"home";
}
}
8. home.jsp 생성
home.jsp를 만들기 전에 views폴더를 먼저 만들어야 한다.
프로젝트 우클릭 > New > Directory를 누르고 views폴더를 생성한다.
home.jsp
<%--
Created by IntelliJ IDEA.
User: devmk
Date: 2020/12/09
Time: 2:31 오후
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Welcome Home!</title>
</head>
<body>
홈 입니다~
</body>
</html>
9. 톰캣 서버 연결
File -> Project Structue > Artifacts > [+]를 누르고 > Web Application: Exploded > From Modules > [OK] 누른다.
Run -> EditConfigurations > 왼쪽 탭에 Tomcat Server > Local 선택
서버 이름 지정하고 Fix를 누른다
컨텍스트를 지정한다. 디폴트값을 지우고 /로 하면 localhost:8080/ 로 url 이 시작된다. 그리고 [ok]
10. 컨틀롤러 요청후 jsp가 호출되는지 확인한다.