[IntelliJ] Hot Swapping을 위한 Spring Loaded 설정

  • Spring Loaded를 사용하여 컨테이너 재시작 없이 자바 클래스를 리로드하여 클래스 변경사항을 적용할 수 있음
  • 기존 Hot Code Replacement(HCR)가 메소드 바디 변경만 허용했다면(즉, 메서드 시그니처는 그대로 유지해야함) Spring Loaded는 메서드, 필드, 생성자, 어노테이션 변경까지 가능하게 해줌
  1. build.gradle 설정
// 1. 외부 라이브러리(jar)를 스크립트의 클래스패스에 추가
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.3.8.RELEASE"
        classpath 'org.springframework:springloaded:1.2.0.RELEASE'
    }
}

// 2. 'idea' 플러그인 적용
plugins {
    id 'idea'
}

// 3. 'idea' 플러그인 설정
idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

Comments