사용자 도구

사이트 도구


springframework:springboot:devtools

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
springframework:springboot:devtools [2018/06/18 15:36]
kwon37xi
springframework:springboot:devtools [2021/02/14 15:27] (현재)
kwon37xi [코드 변경 자동 반영]
줄 1: 줄 1:
 ====== SpringBoot DevTools ====== ====== SpringBoot DevTools ======
   * [[springframework:springboot|SpringBoot]] DevTools   * [[springframework:springboot|SpringBoot]] DevTools
 +  * [[https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html|20. Developer Tools]]
 +
 +===== 설치 =====
 +<code groovy>
 +// configurations 는 일단 안해도 되는벗(springboot version따라?)
 +configurations {
 + developmentOnly
 + runtimeClasspath {
 + extendsFrom developmentOnly
 + }
 +}
 +
 +dependencies {
 + developmentOnly("org.springframework.boot:spring-boot-devtools")
 +}
 +</code>
 +
 +  * ''java -jar''로 실행될 때는 운영 시스템으로 간주하고 devtools가 비활성화 된다.
 +    * 단, System Property ''-Dspring.devtools.restart.enabled=true|false'' 로 제어 가능하다.
 +
 +===== 코드 변경 자동 반영 =====
 +  * Java Code 가 변경되고 **빌드가 실행돼서 클래스패스의 리소스 변경이 감지되면** SpringBoot 애플리케이션을 자동 재시작해준다. 
 +  * [[https://www.jrebel.com/products/jrebel|jrebel]] 처럼 특정 클래스만 재적재해주는 방식은 아니므로 다소 느리다.
 +  * 코드 빌드가 명시적으로 발생해야 하므로 [[:intellij_idea|IntelliJ IDEA]] 처럼 기본적으로 자동 빌드를 하지 않는 IDE 에서는 명시적 빌드를 해줘야 한다.
 +  * 단, [[:intellij_idea|IntelliJ IDEA]] 에도 자동 빌드 기능이 있긴 하지만, 권장하고 싶지 않음. 여러 코드를 변경해야 할 경우 원하는 코드 변경을 모두 다 한 뒤에 reload가 돼야 하는데, 코드 변경을 하고 있는 도중에 빌드가 발생하게 되면 개발이 오히려 느려질 수 있어서 명시적 빌드를 선호하는 편이다.
 +    * [[intellij_idea:config|IntelliJ IDEA Config 설정]] 에서 자동 빌드 부분 참조.
 +  * [[https://www.jetbrains.com/help/idea/spring-boot.html#application-update-policies|Spring Boot—IntelliJ IDEA]]
 +    * 애플리케이션이 실행중인 상황에서 코드 변경 반영 정책(애플리케이션 단위) : **Run | Edit Configurations.** -> Spring Boot 애플리케이션 선택 -> **Running Application Update Policies, -> 'Update'** 에서 원하는 Update 방식 선택.
 +
 +==== reload trigger ====
 +  * 사용중인 IDE가 지나치게 자동 갱신을 해서 오히려 더 개발 속도를 떨어뜨린다면 ''classpath'' 상의 특정 파일이 갱신될 때만 변경 사항을 자동 반영하게 할 수 있다.
 +  * 아래와 같이 설정했다면, ''src/main/resources/.reloadtrigger'' 파일이 변경 될 때만 애플리케이션이 자동 재시작된다.
 +<code properties>
 +'spring.devtools.restart.trigger-file=.reloadtrigger
 +</code>
 +
 +
 +==== 개발 환경에서는 Template Engine의 cache 를 끌 것 ====
 +  * 개발 환경에서는 변경을 빠르게 확인하는게 더 중요하므로 [[java:template_engine|Java HTML Template Engines]]의 cache 를 끈다.
 +
 +===== Local 환경 개발자 전용 전역 설정 Override =====
 +  * ''$HOME/.config/spring-boot/spring-boot-devtools.{properties|yml|yaml}'' 파일이 존재하면 자동으로 읽어 최우선 순위로 적용한다.
 +  * ''$HOME/.spring-boot-devtools.properties'' 위의 파일이 없으면 적용된다.
 +
  
 +===== Live Reload =====
 +  * HTML 변경 사항 발생시에 Browser 자동 reload
 +  * [[http://livereload.com/extensions/|How do I install and use the browser extensions?]]
 +  * Live Reload 서버가 뜨는 것을 막으려면
 +<code properties>
 +spring.devtools.livereload.enabled=false
 +</code>
 ===== 참조 ===== ===== 참조 =====
   * [[https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html|20. Developer Tools]]   * [[https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html|20. Developer Tools]]
줄 8: 줄 59:
   * [[https://dzone.com/articles/spring-boot-developer-tools-and-live-reload|Spring Boot Developer Tools and LiveReload - DZone Java]]   * [[https://dzone.com/articles/spring-boot-developer-tools-and-live-reload|Spring Boot Developer Tools and LiveReload - DZone Java]]
   * [[http://www.javabeat.net/spring-boot-devtools/|Ultimate guide to SpringBoot devtools]]   * [[http://www.javabeat.net/spring-boot-devtools/|Ultimate guide to SpringBoot devtools]]
- +  * [[https://www.vojtechruzicka.com/spring-boot-devtools/|Faster Development with Spring Boot DevTools | Vojtech Ruzicka's Programming Blog]]
springframework/springboot/devtools.1529303819.txt.gz · 마지막으로 수정됨: 2018/06/18 15:36 저자 kwon37xi