스프링 부트 개념과 활용
4. 스프링 부트 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-08-springbootdevtools
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
8. Spring-Boot-Devtools
설정하면 아래의 경로에 해당되는 Properties 들이 모두 변경됨 주로 Cache 관련 설정들을 꺼줌
spring-boot-starter-devtools
dependency 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Auto Restart
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-devtools-restart
SpringBoot는 Class Loader를 두개를 사용함
- Base Class Loader: 기본적으로 바뀌지 않는 기본 Class Loader
- Restart Class Loader: Application 에서 사용하는 일반적인 Class Loader
Restart 시 Restart Class Loader가 제거되고 새로운 Class Loader가 작성됨
Base Class Loader는 새롭게 작성되지 않기 때문에 직접 껐다 켜기(cold starts) 보다 빠름
- 클래스패스에 있는 파일이 변경 될 때마다 자동으로 재시작.
- 직접 껐다 켜는거 (cold starts)보다 빠른다. 왜?
- 릴로딩 보다는 느리다. (JRebel 같은건 아님)
- JRebel은 클래스가로드 될 때 클래스를 다시 작성하여 다시로드하기 쉽도록함
- 리스타트 하고 싶지 않은 리소스는? spring.devtools.restart.exclude
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-devtools-restart-exclude
livereload
Chrome 에서 서버가 재시작했을때 화면을 자동으로 갱신해주는 확장 프로그램
livereload 서버 끄기
spring.devtools.liveload.enabled=false
Global Configuration
우선순위가 가장 높은 외부설정
spring-boot-devtools
plug-in 의존성이 있으면 적용
~/.spring-boot-devtools.properties
리모트 애플리케이션
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-devtools-remote
- 원격에 Application 구동하고 Local에서 실행(재시작, 구동, 파일변경 후 재구동등)
- Production 용이 아님 과정이 매우 복잡함 개발용임 개발용에서 이렇게 복잡한 설정을 하고 쓰지는 않을 것 같음
- 만약 사용한다면 그냥 devtools 의 Cache 끄는 설정만 복사해서 사용하는 것이 나아보임
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 2부: HttpMessageConverters (0) | 2019.11.06 |
---|---|
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 1부: 소개 (0) | 2019.11.05 |
[스프링 부트 개념과 활용] 4-7. 테스트 유틸 (0) | 2019.10.30 |
[스프링 부트 개념과 활용] 4-6. 테스트 (0) | 2019.10.29 |
[스프링 부트 개념과 활용] 4-5. 로깅 2부: 커스터마이징 (0) | 2019.10.28 |
댓글