IntelliJ에서 STS 구조로 Spring 생성하기

김주언·2022년 8월 31일
1

Spring

목록 보기
4/15
post-thumbnail

1. 프로젝트 생성

Maven애서 체크 안 하고 바로 NEXT

원하는 이름 설정 후 finish하면 아래와 같이 프로젝트가 생성된다.


2. 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.webproj</groupId>
    <artifactId>springBoard</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.22</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <org.springframework-version>5.3.22.RELEASE</org.springframework-version>
    </properties>
    
    

</project>

코드 추가 후 Load Maven Changes 해주면 메이븐이 프로젝트에 필요한 라이브러리를 자동으로 설치한다.


3. Project Structure 설정

web 클릭하고 프로젝트 클릭 후 OK 눌러준다. 그러면 아래처럼 추가됨

요렇게..

그다음에은 Artifact 추가한다

OK!!
프로젝트 구조에 web\WEB-INF\web.xml이라는 파일이 생겼다.


4. xml 파일 설정

web.xml 파일에 코드를 추가한다.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
 </servlet-mapping>

빨간 줄 나는 이유는 아직 파일이 없어서 그럼.
파일 만들어 주긔 (spring config xml)

만들어 준 후에 dispatcher-servlet.xml에 내용을 추가한다.

<mvc:annotation-driven/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
    <property name="order" value="1"/>
</bean>

<context:component-scan base-package="com.example.springboard"/>

basepackage를 읽어서 component를 스캔하기 때문에 컨트롤러 생성 시 베이스 패키지와 패키지명 일치시켜줄 것

이렇게... HomeController 내용은 아래와 같다.

package com.example.springboard.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {
    @RequestMapping("/")
    public String index(Model model) {
        model.addAttribute("data", "Hello, Spring from IntelliJ! :)");
        return "index";
    }
}

5. view 페이지 추가

web/WEB-INF/views 디렉터리를 추가한 후에 views 디렉터리 아래에 index.jsp 파일 생성


<%--
  Created by IntelliJ IDEA.
  User: jueon
  Date: 8/31/22
  Time: 2:02 PM
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>${data}</h3>
</body>
</html>

6. 서버 설정

톰캣 서버를 설정해준다.

우측 하단의 fix 버튼 눌러주기

OK 누르고 서버를 실행해본다

된다..


7. STS 구조로 변경하기

web 디렉터리명을 webapp으로 변경하고 /src/main아래로 이동한다. (/src/main/webapp)

그리고 프로젝트 구조를 열어서 webapp 디렉터리의 경로를 변경해준다

빨갛게 되어있는 경로를 변경

OK 누르면 오류가 사라짐

그리고 applicationContext.xml -> root-context.xml
dispatcher-context.xml -> servlet-context.xml로 변경

spring 디렉터리 아래에 appServlet 디렉터리 생성하고 servlet-context를 아래에 둔다

다시 서버를 실행해보자...

잘됨~!

profile
학생 점심을 좀 차리시길 바랍니다

0개의 댓글