[ Hot deploy, DynamicLoading, java,class 자동반영 ]
1. 정의
. Tomcat 실행 중 java 소스가 변경 시 Tomcat을 restart하지 않고 java소스가 바로 반영
2. 방법
. springloaded-1.2.8.RELEASE.jar (2018.08.27일 최신)
- 파일을 down받은 후 특정 폴더 위치시킴
. Eclipse > Tomcat > double click
-> Open launch configuration 클릭
-> [Arguments] Tab
-> VM arguments에 아래 속성 추가
-javaagent:c:/GDMiStudio/springloaded-1.2.5.RELEASE.jar -noverify
-> [OK]
-> [Publishing]
(o) Automatically publish when reosurce change 를 선택
-> [저장]
참고] VM arguments 전체 예문
-Dserver.name=LocalTomcat
-DinstanceNumber=01
-Dspring.profiles.active=local
-XX:+TieredCompilation
-XX:TieredStopAtLevel=1
-Xverify:none
-javaagent:C:\PJT\server\bin\spring\lib\springloaded-1.2.8.RELEASE.jar
-noverify
3. 추가적용예
-> VM arguments에 추가 속성 정의
-Ddynamicloading=verbose;onDemand;inclusions=aaa.bbb.ccc..*,aaa.bbb.ddd..*
파라미터 | 초기값 | Description |
---|---|---|
onDemand |
false | 요청이 있을 때에만 동작 하도록 할 것인지 여부 (설정이 되어 있으면 Watcher 쓰레드를 기동하지 않음.) |
scanInterval | 1100 | 모니터링 주기 (milliseconds) onDemand 옵션이 true 일 경우 무시됨(0으로 설정) |
inclusions | 포함시킬 패키지 패턴 명 (설정되어 있지 않으면 모든 패키지를 포함함 – 기본제외패키지는 제외) | |
exclusions | 제외시킬 패키지 패턴 명 | |
verbose | false | Verbose 모드 |
explain | false | 재로딩 실패 시 원인을 로그로 출력할 것인지 여부 |
Controller/Servlet 설정
remote 환경에서 클래스 dynamic loading 요청을 받기 위해 Controller 또는 Servlet이 필요하다. (둘 중 선택)
Spring Controller
아래와 같이 DynamicLoadingManager와 관련 Controller bean 설정을 추가한다.
여기서 ”/dynamicloading/execute”와 ”/dynamicloading/state”는 관련 요청을 받는 URL이 된다.
Servlet
제공되는 서블릿에 @WebServlet 설정이 내장되어 있으므로, Servlet3.0을 지원하는 WAS의 경우 별도의 Servlet 설정이 필요없다.
제공되는 URL은 위 Controller와 동일하다.
'유틸리티 > eclipse' 카테고리의 다른 글
eclipse - jad적용시키기 (class 파일 보기) (0) | 2018.08.01 |
---|---|
eclipse단축키 (0) | 2018.07.17 |
eclipse. SQL바로 적용. 수행sql console에 format적용 되어 출력 (0) | 2017.10.17 |
[Eclipse] 메모리 오류 발생시 (0) | 2017.07.12 |
eclipse. 설치파일 (0) | 2017.02.28 |