Setting Spring boot project on IntelliJ


Categories: Spring
Tags: #Spring boot #IntelliJ

Spring boot 프로젝트 IntelliJ 에 세팅하기

Play framework in Scala 를 사용하다 아래와 같은 이유로 Spring boot 프로젝트를 시작.

스프링 프레임워크 기반. 개발 방식을 단순화 함. 바로 돌려볼 수 있는 스프링 기반 앱을 쉽게 작성할수 있고, 서버가 내장된 단독형 애플리케이션도 100% 실행 가능한 형태로 개발 할 수 있음.

스프링 부트 CLI 설치

단순히 앱 실행뿐만 아니라 필요한 폴더 구조를 초기화하고 자동 생성하는 용도인 스프링 부트 CLI 설치(for MacOS).

$ brew tap pivotal/tap
$ brew install springboot

스프링 부트 프로젝트 시작하기

위에서 설치한 CLI로 프로젝트에 필요한 초반 설정(Maven or Gradle)이나 Dependency library들을 UI로 선택하여 프로젝트 시작할 수 있음. 본 글에서는 Gradle 사용.

# spring init --build gradle -d{dependency lib keyword} {project name}
$ spring init --build gradle -djpa,security,flyway,lombok myFirstApp

IDE를 이용하여 시작하는 방법

  • IntelliJ의 경우, File > New > Project... > Spring Initializr 를 사용.
  • 이클립스 같은 경우, STS(Spring Tool Suite, 스프링 도구 모음) 플러그인 설치하여 만들 수 있음.

IntelliJ 개발 환경 세팅

RUN Spring boot project

최상단 메뉴 Run > Edit Configurations...으로 이동 후 Spring Boot 추가. 그리고, Project 에서의 Main class 위치 설정.

Hot swapping(자동으로 코드 수정사항 반영한 Reload)

1. spring-boot-devtools를 라이브러리에 추가하고, build.gradle 설정에 아래 내용 추가.

apply plugin: 'idea'

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}

idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

2. IntelliJ 에서 cmd + shift + A > Registry... 검색 및 선택 > compiler.automake.allow.when.app.running 옵션 체크

3. 최상단 메뉴 Run > Edit Configurations...에서 Spring Boot > Running Application Update Polices 아래와 같이 변경

4. Preferences 를 열고 (cmd + ,), Compiler에서 Build project automatically 옵션 체크

5. IntelliJ 재부팅

Hot swapping 설정 참고

Error Handling

기본 포트인 8080 포트 사용 중인 경우

최상단 메뉴 Run > Edit Configurations...에서 Environment variables에 Name => server.port, value => 7070으로 넣어줌. 또는, application.propertiesserver.port = 7070

자바 라이브러리 위치 못 잡는 에러

아래 에러가 발생하는 경우 gradle clean

objc[72278]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java (0x109c944c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10ac814e0). One of the two will be used. Which one is undefined.

Failed to determine a suitable driver class 에러

DB 관련 Dependency Library 추가한 후, 아무런 DB 설정을 하지 않으면 위와 같은 메시지가 나타나면 앱이 동작하지 않음. Main Class Annotation으로 @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})을 추가. 참고 글

Spring boot Run 할 경우 알 수 없는 이유로 바로 종료

org.springframework.boot:spring-boot-starter-web 의존성 있는지 확인하고, 없으면 추가. Spring Boot App이 항상 종료되는 이유 참고.

Comments