[Spring] 인텔리제이 Spring MVC 프로젝트 생성

아는벌·2023년 2월 23일
0

web (2)

목록 보기
6/20

Spring Framework

  • 자바 기반의 오픈소스 프레임워크
  • 스프링 기반 애플리케이션을 손쉽게 만들어주는 스프링 프로젝트 중 하나
  • 프로젝트 규모와 필요 기능에 따라 스프링 프레임워크를 기본으로 여러 모듈을 조합한 형태로 사용하게 됨

특징

  • 경량 컨테이너
    - 객체 생성, 소멸과 같은 생명 주기를 관리하며 스프링 컨테이너로부터 필요한 객체를 얻어올 수 있음
  • 제어의 역행 지원
    - 메서드나 객체의 호출 제어권이 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드 호출
  • 의존성 주입 지원
    - 각각의 계층이나 서비스 간의 의존성이 존재할 경우, 프레임워크가 연결
  • 관점 지향 프로그래밍 지원
    - 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리 가능

대표적인 스프링 프로젝트

1) 스프링부트

  • 간편하게 스프링 프로젝트 시작할 수 있으며, 마이크로서비스 개발 및 웹 애플리케이션 개발에 적합
  • 특정 목적의 개발환경과 프로젝트 구조를 자동으로 생성하고 바로 사용 가능
  • 리액티브 스택과 서블릿 스택 구분

2) 스프링 데이터 - 데이터베이스 연동을 위한 편리한 개발 지원
3) 스프링 배치 - 대량의 데이터를 일괄 처리하기 위한 솔루션, 대형 시스템에 적합
4) 스프링 시큐리티 - 보안과 관련된 여러 기능을 통합 제공
5) 스프링 HATEOAS - REST API에 대해 하이퍼 미디어 기반으로 서비스 정보를 제공하는 기능, API 구조파악과 테스트에 유용

인텔리제이에서 프로젝트 생성하기

프로젝트 생성

maven 프로젝트를 생성한다

GroupId - 일반적으론 도메인의 역순
ArtufactId - 프로젝트명
Vserion - 버전은 버전!

입력 후 create하면 일단 Maven 프로젝트는 생성된다.

프레임워크 추가

프로젝트명에서 우클릭 -> add frameworks support클릭 -> Spring MVC 다운로드에 Configure 클릭 -> 맞는 버전 찾아서 ok -> ok

** add frameworks support에 Spring이 없다면..


Project Structure - Facets에 들어가면 이미 Spring이 있다. delete하면 add frameworks support에 Spring이 나타난다.
근데 여러 설정 건들고나서 add frameworks support에 Spring이 없네?해서 Facets에 있는 Spring delete하고 add frameworks support에서 다운로드하면 잘 안 되더라,,,
(https://hoit1302.tistory.com/66)

디렉토리 추가/수정

pom.xml

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

pom.xml에 spring-webmvc 버전에 맞게 dependency 추가해서 빌드하한다. Spring뿐만 아니라 lombok, log4j, oracle JDBC 등 필요한 라이브러리는 여기 pom.xml에 dependency 설정 후 빌드하면 된다.

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">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/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/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>
</web-app>

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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <mvc:annotation-driven></mvc:annotation-driven> <!-- Annotation 활성화 -->
    <context:component-scan base-package="Controller"></context:component-scan> <!-- Component 패키지 지정 -->

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

</beans>

web.xml과 dispatcher-servlet.xml를 수정했다.
web.xml파일의 위치가 이클립스 - STS 와는 다르다. 만약 web.xml의 위치를 바꿀거면 <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 이런 부분 경로를 맞춰서 바꿔줘야한다.

TestController.java

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

@Controller
public class TestController {
    @RequestMapping(value = "/")
    public String main() {
        return "index";
    }
}


해당 경로에 TestController.java 파일을 생성한다.

artifacts 적용



Project Structure에 Artifacts 클릭 -> 오른쪽 라이브러리를 왼쪽 lib로 옮기고 ok

톰켓 설정


오른쪽 상단의 Add Configuration... 클릭 -> + 버튼 클릭 -> Tomcat Server / local 클릭


톰켓 버전에 맞게 설정하고 URL과 포트 확인한 후 아래쪽 Fix 클릭한다.



fix를 누른 후 화면에서 Application context를 / 로 변경해준다!

실행결과


실행 성공!😊👌
localhost:8080에 접속하면 index.jsp가 보여진다 ~
인텔리제이로 Spring MVC 프로젝트 생성해보았다.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <% for (int i = 0; i<3;  i++) { %>
    <h2>안녕하세용</h2>
  <% } %>
  </body>
</html>

안녕하세용으로 for문으로 반복하도록 index.jsp를 수정하였다.
잘된당

참고

0개의 댓글