ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [IntelliJ] 인텔리제이 Spring MVC 프로젝트 설정하기
    IntelliJ 인텔리제이 2020. 12. 9. 16:50
    반응형

    버전> 

    IntelliJ 인텔리제이 얼티메이트 2020.1

    자바 1.8

    톰캣 8.0

    Spring 5.2.3

     

    1. 프로젝트 생성하기

    Create New Project 클릭

    2. Maven 선택 , 자바 버전 확인

    Next 클릭

    3.프로젝트 정보 입력한다.

    Finish 클릭으로 마무리

    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.xmlservlet-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가 호출되는지 확인한다.

     

     

    반응형

    댓글

Designed by Tistory.