인텔리 제이 spring-boot-maven-plugin - intelli jei spring-boot-maven-plugin

Spring

IntelliJ로 스프링 부트 프로젝트 생성 및 설정 ( Maven )

Llife 2020. 6. 20. 13:22

스프링 부트를 위한 프로젝트 생성 방법입니다.

1. Maven으로 프로젝트를 생성

인텔리 제이 spring-boot-maven-plugin - intelli jei spring-boot-maven-plugin

2. pom.xml에 기본적인 Setting 추가

메이븐에는 프로젝트 간의 계층 구조를 만들 수 있습니다.

<parent> 태그를 통해 아래와 같은 계층 구조를 만들어 줍니다. -> 스프링 부트의 의존성 관리에 핵심적인 부분

웹 어플리케이션을 위한 디펜던시와 빌드 툴을 추가해주면 기본적인 셋팅이 완료됩니다.

<!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3. 패키지와 클래스 생성

src > main > java 에서 패키지를 하나 생성 한 후 자바 클래스를 생성합니다.

인텔리 제이 spring-boot-maven-plugin - intelli jei spring-boot-maven-plugin

아래와 같이 작성하고 실행합니다.

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
인텔리 제이 spring-boot-maven-plugin - intelli jei spring-boot-maven-plugin

출처: https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#getting-started-maven-installation

Spring Boot Reference Guide

This section dives into the details of Spring Boot. Here you can learn about the key features that you may want to use and customize. If you have not already done so, you might want to read the "Part II, “Getting Started”" and "Part III, “Using Spr

docs.spring.io

, 백기선님의 강의

Spring/Spring Boot

[Spring Boot #1] 인텔리제이(IntelliJ)로 스프링 부트 프로젝트 시작하기

새로비 2018. 12. 21. 19:31

| 스프링 부트(Spring Boot)란?

스프링 부트(Spring Boot)는 스프링 프레임워크 기반 어플리케이션을 더 빠르고 쉽게 개발할 수 있게 해주는 오픈소스 프로젝트입니다. 스프링 프레임워크만으로 개발할 때보다 간단한 설정만으로도 쉽게 웹 어플리케이션을 제작할 수 있습니다.

| 인텔리제이(IntelliJ) IDE

인텔리제이(IntelliJ)JetBrain사에서 개발한 자바 IDE입니다. 기존의 이클립스(Eclipse) IDE보다 여러 면에서 월등하다고 평가받고 있는 IDE이며 유료 구독 버전인 Ultimate 버전과 무료 버전인 Community 버전을 사용할 수 있습니다. 

아래는 인텔리제이 커뮤니티 버전을 받을 수 있는 사이트입니다.

https://www.jetbrains.com/idea/

| 인텔리제이(IntelliJ)를 통한 스프링 부트 프로젝트 만들기

인텔리제이 Community 버전을 기준으로 스프링 부트를 만드는 법을 설명하도록 하겠습니다. 

인텔리제이를 설치하고 나면 Tool바File => Project를 누릅니다.

인텔리 제이 spring-boot-maven-plugin - intelli jei spring-boot-maven-plugin

Maven를 클릭합니다.

Maven 프로젝트의 그룹명과 아티팩트명을 써줍니다.

프로젝트명을 씁니다.

다음과 같이 Maven 프로젝트가 만들어 졌습니다. 

Maven 프로젝트의 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.tutorial</groupId>
<artifactId>springboot-tutorial</artifactId>
<version>1.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

다음과 같이 프로젝트 구조를 만듭니다.

Application.java의 코드는 다음과 같습니다.

package com.tutorial.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

아래와 같이 Run 'Application'을 클릭합니다.

다음과 같이 콘솔창에서 실행되는 것을 알 수 있습니다.

.   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)

2018-12-21 20:46:36.097 INFO 10656 --- [ main] com.tutorial.springboot.Application : Starting Application on USER-PC with PID 10656 (C:\Users\user\spring\springboottutorial\target\classes started by user in C:\Users\user\spring\springboottutorial)
2018-12-21 20:46:36.101 INFO 10656 --- [ main] com.tutorial.springboot.Application : No active profile set, falling back to default profiles: default
2018-12-21 20:46:37.662 INFO 10656 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-12-21 20:46:37.700 INFO 10656 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-12-21 20:46:37.700 INFO 10656 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.13
2018-12-21 20:46:37.715 INFO 10656 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_131\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\oraclexe\app\oracle\product\11.2.0\server\bin;;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_131\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Dev-Cpp\MinGW64\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\PuTTY\;C:\Program Files\apache-maven-3.5.0\bin;C:\Users\user\.m2\repository\org\apache\maven\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;C:\Program Files\Microsoft SQL Server Migration Assistant for Access\bin\;C:\Program Files\Microsoft SQL Server Migration Assistant for MySQL\bin\;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\Amazon\AWSCLI\;C:\WINDOWS\System32\OpenSSH\;D:\gradle\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\maven\bin;C:\Program Files (x86)\Common Files\Adobe\AGL;C:\Users\user\Anaconda3;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;;C:\Program Files\Microsoft VS Code\bin;C:\Users\user\AppData\Roaming\npm;C:\Users\user\AppData\Local\Programs\Microsoft VS Code\bin;.]
2018-12-21 20:46:37.861 INFO 10656 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-12-21 20:46:37.861 INFO 10656 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1662 ms
2018-12-21 20:46:38.127 INFO 10656 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-12-21 20:46:38.324 INFO 10656 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-12-21 20:46:38.328 INFO 10656 --- [ main] com.tutorial.springboot.Application : Started Application in 2.933 seconds (JVM running for 4.486)

스프링 부트는 maven을 통해 빌드하면 jar 파일 하나가 생성됩니다. 이 jar파일을 실행시키면 스프링 부트가 위와 같이 실행되는 것을 볼 수 있습니다. 단순히 스프링 프레임워크만을 써서 개발을 했을 경우에는 톰캣(Tomcat)과 연동하여 war 파일을 만들어서 실행해야 했지만 스프링부트는 스프링부트 안에 자체적으로 톰캣이 내장되어 있어 그럴 필요 없이 바로 jar 파일 하나만 실행하면 웹 어플리케이션을 가동할 수 있습니다.

아래와 같이 Maven 명령어를 쳐서 패키징을 합니다.

아래와 같이 발드 및 패키지가 자동적으로 실행됩니다.

다음 아래와 같이 명령어를 쳐서 위에서 생성된 스프링 부트 jar파일을 실행합니다.

아래와 같이 스프링부트가 실행되는 것을 볼 수 있습니다.

2018-12-21 21:26:18.939  INFO 552 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-12-21 21:26:18.940 INFO 552 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1422 ms
2018-12-21 21:26:19.187 INFO 552 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-12-21 21:26:19.394 INFO 552 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-12-21 21:26:19.397 INFO 552 --- [ main] com.tutorial.springboot.Application : Started Application in 2.333 seconds (JVM running for 2.747)

참고자료 : https://www.inflearn.com/course/스프링부트