반응형

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>


반응형
,
반응형