ToBe끝판왕

[ InteliJ ] 인텔리제이 Spring + Maven 프로젝트 생성 본문

■ 프로그래밍 SKILLS/IDE

[ InteliJ ] 인텔리제이 Spring + Maven 프로젝트 생성

업그레이드중 2024. 4. 8. 23:39
반응형

 

 


 

 

기본 환경 설정

 

 

▶  아래의 버전을 활용하여 진행

•  JDK 1.8
•  Apache Tomcat 8.5.99
•  Apache Maven 3.8.1

※ 프로젝트 파일 내, 위의 3개를 다운받고 압축을 해제해준다.

 

 

 

 

InteliJ 신규 프로젝트 생성

 

 

1) New Project 를 클릭하여 신규 프로젝트 생성

 

 

 

 

2) 좌측의 Maven Archetype 를 클릭해준다.

 

 

 

 

3) 세부 설정

•  Name : Project 이름 설정

•  Location : InteliJ 프로젝트 경로 ( Local 위치 )

•  JDK : 설치한 PC의 JDK 설치 경로

 

 

 

 

4) Maven Archetype 설정

•  Add 버튼 클릭 ( Add Archetype 팝업창 켜짐 )

•  GroupId : org.apache.maven.archetypes  

•  ArtifactId : maven-archetype-quickstart

•  Version : 1.1

•  Catalog : Apache Maven 설치된 경로 지정

 

 

 

 

5) Advanced Settings

•  GroupId : com.spring.practice ( 예시 )

•  ArtifactId : springPractice ( 예시 )

•  Version : 1.0-SNAPSHOT ( 예시 )

 

 

 

 

6) 프로젝트 생성 ( create 버튼 ) + 설치 확인

•  프로젝트가 생성된뒤 "BUILD SUCCESS" 문구가 나온다면 정상적으로 생성된것 의미

 

 

 

 


 

 

InteliJ 신규 프로젝트 SpringFramework 추가

 

 

 

1) 정상적으로 생성된 프로젝트에 SpringFramework 구조

•  Project Name 선택 후, 마우스 우클릭

•  [ Add Framework Support ] 클릭

 

 

 

 

2) Spring MVC 설정

•  좌측 메뉴의 Spring > Spring MVC 클릭

•  Configure 를 클릭하면, 다운로드 되는 Option을 확인할 수 있다.

•  OK 클릭하여 Framework 적용

 

 

 

 

3) 디렉터리 구조 확인

•  Spring MVC 적용 후, WEB-INF 아래에 3개의 파일이 생성됨을 확인 가능하다.

•  applicationContext.xml : applicationContext 설정에 필요한 파일이며 주로 Spring 어플리케이션에 사용되는 Bean 정의

•  dispatcher-servlet.xml : dispatcher-servlet 설정에 필요한 파일이며, 주로 클라이언트 요청과 요청을 처리할 핸들                                                                             (Controller)를 매핑

                                                      View Resolver 설정 ( 핸들러에서 반환한 View이름을 실제 View  리소스의 경로로 반환 )

•   web.xml : Web Application의 설정에 필요한 파일이며 반드시 하나의 web.xml파일을 가져야한다.
                          Servlet 매핑 하는 법 ,인증이 필요한 URL 등의 정보를 확인한다.
                         WebApplication의 Deployment Descriptor(배포 설명자) 로써 XML형식의 파일이다.
                         web.xml파일의 설정들은 Web Application 시작시 메모리에 로딩된다.

 

 

 

 

4) 라이브러리 추가 및 이동

•   상단의 [ File ] > [ Project Structure.. ] 클릭

•   Project Structure 팝업창 좌측 [ Artifacts ] 클릭

•   우측의 Spring 라이브러리들을 더블 클릭 ( WEB-INF 하단의 lib 폴더안으로 라이브러리들이 이동하게 됨 )

•   하단의 [ Apply ] 버튼 클릭 후, [ Ok ] 버튼

 

 

 


 

 

Tomcat Web Application 실행

 

 

 

1) 상단의 [ Run ] > [ Edit Configuartions.. ] 클릭

 

 

 

 

2) + 버튼 클릭 후, Tomcat Server 아래의 Local을 선택

 

 

 

3) Tomcat Server 설정

•   [ Configure ] 버튼 클릭 ( Application Servers 팝업창 )

•   Tomcat Home / Tomcat base directory 를 Apache Tomcat이 설치된 경로로 지정

•   [ Ok ] 버튼 클릭

 

 

 

 

•  Vm options : -Duser.language=en -Duser.region=us ( Tomcat 실행 Log 한글 깨지는것을 방지

•  JRE 경로 : PC 내 설치된 JDK 디렉터리 내 JRE 사용

•  HTTP port : 기본값 8080 혹은 충돌 방지를 위하여 port 번호 변경

•  fix 버튼은 Tomcat 정상적인 설정을 위해 눌러준다.

•  [ Apply ] 클릭 후, [ Ok ] 클릭

 

 

 

 

 

4) Tomcat Deployment 설정

 

 

 

 

5) Tomcat 실행 및 확인

•  Tomcat 실행

•  Tomcat이 실행되면, WEB-INF 안의 index.jsp 내용이 기본적으로 노출

 

 

 

 

 


 

 

Maven 설정

 

 

 

1) 사용자 Local Apache Maven 설치경로 Path 지정

•  Apache Maven 디렉터리 내, repository 폴더 생성

•  repositry 는 pom.xml에서 선언한 Dependency들을 저장소로부터 불러와 사용

 

 

 

 

•  상단의 [ File ] > [ Settings ] 클릭

 

 

 

 

•  Settings 팝업창 좌측의 [ Build, Execution, Deployment ] > [ Build Tools ] > [ Maven ] 클릭

•  Maven home path : PC 내 설치된 Apache Maven 의 경로 지정

•  User Settings file : Apache Maven 디렉터리 내, conf 디렉터리 안 settings.xml 지정 

•  Local repository : Apache MAven 디렉터리 내, repository 디렉터리 지정

•  [ Apply ] > [ Ok ]  클릭 후, repository 디렉터리 내 Maven plugin 설정 jar 파일들이 설치 및 추가될때까지 기다린다.

 

 

 

 

 

2) Maven 라이프사이클 설정

•  mvn compile : 컴파일을 수행하며 결과는 target / classes 에 생성됨

•  mvn test : 테스트 코드를 컴파일 한 후, 테스트 코드를 실행

•  mvn package : 컴파일된 결과물을 패키지로 생성 ( 컴파일, 테스트, 빌드를 수행하여 패키지 파일 생성 )

•  mvn install : 패키징한 파일을 로컬저장소에 배포

•  mvn deploy : 패키징한 파일을 원격저장소( maven central 저장소) 에 배포

•  mvn clean : Maven 빌드를 통해 생성된 모든 산출물 삭제

 

•  pom.xml에 Maven Build 설정을 추가

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

 

 

 

•  pom.xml 에 추가하였다면, 우측의 maven 클릭

•  lifecycle 의 clean을 클릭하여 하단의 BUILD SUCCESS 문구 확인 ( 정상적으로 clean이 완료 의미 )

 

 

 

 

 


 

 

 

Spring 기본 설정

 

 

 

1) pom.xml 에 Spring 에 필요한 의존성 주입

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    <!-- 버전 정보를 일치시키기위한 태그 지정 -->
    <org.springframework-version>5.2.3.RELEASE</org.springframework-version>
  </properties>

  <dependencies>
  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>

  </dependencies>

 

 

 

•  pom.xml 에 의존성 주입을 한 후, 우측 maven 의 reload 버튼을 클릭

•  설정한 의존성 관련 jar 파일들이 Local의 repository 디렉터리 내 저장된다.

 

 

 

 

2) Project Library에 Spring 관련 jar 파일 추가

•  상단의 [ File ] > [ Artifacts ] 메뉴 확인

•  기존에 추가한 Spring 설정 JAR 파일을 lib 디렉터리에서 제거

•  Maven Dendency에 의해 추가한 Spring 설정 JAR파일을 lib디렉터리에 추가

 

 

 

•  아래와 같이 되어야 한다.

 

 

 

 

3) Spring 설정 파일 

※ web.xml
• Spring 웹 애플리케이션의 서블릿 컨테이너에게 애플리케이션의 구성 및 설정을 제공하는 역할

 

 

•  web.xml 파일을 아래와 같이 설정

- 요청이 *.do 이면, dispatcher 이름의 DidspatcherServlet 클래스의 객체가 생성되고 실행된다는 설정

<?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>*.do</url-pattern>
    </servlet-mapping>
</web-app>

 

 

 

 

※ dispatcher-servlet.xml
•  Spring MVC에서 DispatcherServlet의 설정을 정의하여 웹 애플리케이션의 요청 처리 및 뷰 리졸버와 같은
   웹 계층 구성을 제공

 

 

•  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:mvc="http://www.springframework.org/schema/mvc"
       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 https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Annotation 활성화 -->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!-- component-scan 설정 -->
    <context:component-scan base-package="com.devblog.practice.controller"></context:component-scan>

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

</beans>

 

 

 

 

 

4) View 샘플 / Controller 샘플 생성

 

•  [ WEB-INF ] 아래에 views 디렉터리 생성

•  views 아래에 example.jsp 파일 생성

 

 

 

 

•  [ src ] > [ main ] > [ java ] > GroupId ( 예시 : com.devblog.practice ) 경로에 package 추가 ( controller 패키지 )

•  controller 패키지에 java class 파일 추가 ( 예시 : ExampleController.java )

 

 

 

 

•  Tomcat 서버를 구동하고 URL에 /example.do 를 붙여준다.

•  example.jsp 에서 작성했던 Spring 연결 성공! 문구가 나오는것을 확인할 수 있다.

 

 

 

 

 

InteliJ 의 기본적인 Spring 프로젝트 생성 완성 !!!

 

 

 

 

 

 

 

 

 

 

반응형
Comments