java webapp의 최대 단점인, java소스 수정 후 restart 해야 반영된다는 점이 spring-loaded라는 것을 사용하면 어느정도 해결이 된 듯 하다.
난 이제 무조건 Spring Boot를 사용하므로, Spring Boot위주로 설명한다.
maven을 사용하는 경우 plugin만 아래와 같이 추가를 하고, mvn spring-boot:run 으로 실행하면 된다.
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> </dependencies> </plugin>
각 template 파일들은 caching이 되어 있으면, 기존 정보를 불러올 수 있으므로 아예 꺼버리도록 하자.
본인은 freemarker를 사용하므로, 아래와 같은 구문을 properties에 추가
spring.freemarker.cache=false
java 소스를 수정하고, ftl파일에서 뿌려보니 바로바로 적용이 잘 되는 것을 확인!
이제 돈내고 Jrebel 쓸 필요가 없어진 것 같다.
추가)
이클립스 또는 sts를 사용하는 경우 mvn spring-boot:run 으로 실행한 후, terminate로 shutdown을 시키면
javaw.exe 프로세스는 terminate되지만, java.exe 프로세스는 살아있어서, 강제로 kill 하기 전까지 다시 실행을 못하는 이슈가 있다.
이런 경우에 아래와 같이 configuration 설정을 추가 해준다.
(출처 : https://benlazaro.wordpress.com/2016/01/16/terminating-mvn-spring-bootrun-tomcat-from-eclipse/ )
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> </dependencies> <configuration> <executable>true</executable> <fork>false</fork> </configuration> </plugin>
'개발 > Spring Framework' 카테고리의 다른 글
[Spring Boot] jar로 패키징 시 daemon화 시키기 (0) | 2016.06.10 |
---|---|
[Spring Boot] freemarker에서 Spring Security taglib 인식이 안되는 경우 (0) | 2016.06.10 |
[Spring Boot] freemarker에서 Spring Security csrf 처리하기 (0) | 2016.06.10 |
[Spring Fox] Swagger-SpringMvc에서 Migration하기 (0) | 2016.06.10 |
[Spring Security] csrf token handling (0) | 2016.06.10 |