스프링부트에서 소스코드 수정시 자동으로 서버를 재시작 하는 기능등을 제공한다.
maven dependencies
<dependencies>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-devtools</artifactid>
<optional>true</optional>
</dependency>
</dependencies>
스프링부트에서 소스코드 수정시 자동으로 서버를 재시작 하는 기능등을 제공한다.
maven dependencies
maven dependencies
<dependencies>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-devtools</artifactid>
<optional>true</optional>
</dependency>
</dependencies>
자동 restart
- classpath가 변경되면 어플리케이션이 자동으로 restart
- ide마다 차이가 좀 있는데 eclipse는 저장시에 classpath 변경이 발생하지만, intellij는 build project 기능을 통해 진행된다.
- classpath가 변경되면 어플리케이션이 자동으로 restart
- ide마다 차이가 좀 있는데 eclipse는 저장시에 classpath 변경이 발생하지만, intellij는 build project 기능을 통해 진행된다.
Restart vs Reload
- spring boot는 2개의 classloader를 사용
- Base classloader : 변하지 않는 3rd party용 .jar파일같은
- Restart classloader : 개발자가 직접 작성하는 클래스 같은
- Restart 실행시에 base classloader가 미리 작업한 부분은 할필요하고 없으므로 효율적임
- 만약 restart 가 충분히 빠르지 못하게 작동한다면 JRebel의 reloading을 고려
- spring boot는 2개의 classloader를 사용
- Base classloader : 변하지 않는 3rd party용 .jar파일같은
- Restart classloader : 개발자가 직접 작성하는 클래스 같은
- Restart 실행시에 base classloader가 미리 작업한 부분은 할필요하고 없으므로 효율적임
- 만약 restart 가 충분히 빠르지 못하게 작동한다면 JRebel의 reloading을 고려
Excluding Resources
- /META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
- 이곳 폴더들은 변경이 일어나도 restart가 발생하지 않음
spring.devtools.restart.exclude=static/**,public/**
- 이런식으로 추가로 설정가능
- /META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
- 이곳 폴더들은 변경이 일어나도 restart가 발생하지 않음
spring.devtools.restart.exclude=static/**,public/**
- 이런식으로 추가로 설정가능
Watching Additional Paths
- 반대로 classpath에 없는 파일 변경시에 restart를 원한다면
- spring.devtools.restart.additional-paths 을 통해 등록할 수 있다.
- 반대로 classpath에 없는 파일 변경시에 restart를 원한다면
- spring.devtools.restart.additional-paths 을 통해 등록할 수 있다.
LiveReload
- chrome, firefox, safari 에서는 브라우저 플러그인(http://livereload.com/)을 활용하면 브라우저가 자동으로 갱신되는 효과를 얻을 수 있다.
참고 https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-devtools
- chrome, firefox, safari 에서는 브라우저 플러그인(http://livereload.com/)을 활용하면 브라우저가 자동으로 갱신되는 효과를 얻을 수 있다.
참고 https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-devtools