LoginSignup
27
23

More than 1 year has passed since last update.

Spring Bootでjavaクラスやテンプレートエンジンのホットデプロイ(オートリロード)

Last updated at Posted at 2015-12-21

Spring Bootでホットデプロイとか出来るの?思って調べてたら、Springloadedなるものを使えば出来る、とあったので試してみました。
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-reload-static-content
※78.4 Reload Java classes without restarting the container の所です

javaクラスやテンプレートエンジンに適用出来るみたいなのでまとめておきます。

pom.xmlの設定

springloadedへの依存関係を追加します、以下のようになります。

pom.xml
 <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <dependencies>
                 <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>springloaded</artifactId>
                         <version>1.2.0.RELEASE</version>
                 </dependency>
         </dependencies>
 </plugin

Springloadedのバージョンは以下から任意のものを選んでください(最新版が良いかと思います)。
http://mvnrepository.com/artifact/org.springframework/springloaded

Spring BootのVM引数の設定

公式によると、上記pom.xmlの設定のみでOKみたいな感じですが、実際はこれをやらないとダメでした。

STSでプロジェクトを右クリック → 【Run As】 → 【Run Configurations…】 → 【Java Application】 → 【プロジェクト名】 → Argumentsタブ → VM arguments
に以下を入力

-javaagent:M2REPO/repository/org/springframework/springloaded/1.2.1.RELEASE/springloaded-1.2.1.RELEASE.jar -noverify
※M2REPOのところは各自のMavenローカルリポジトリのパスを指定します。
※1.2.1のところは利用するバージョンになります。

こうすることでSpringloadedが効きます。
以降はテンプレートエンジンのオートリロードについてです。

Thymeleafテンプレートのオートリロード

application.properties(or YML)に以下を追加します。

application.properties
spring.thymeleaf.cache=false

FreeMarkerテンプレートのオートリロード

application.properties(or YML)に以下を追加します。

application.properties
spring.freemarker.cache=false

Groovyテンプレートのオートリロード

application.properties(or YML)に以下を追加します。

application.properties
spring.groovy.template.cache=false

Velocityテンプレートのオートリロード

application.properties(or YML)に以下を追加します。

application.properties
spring.velocity.cache=false

2016/4/27 追記
Spring Boot1.3以上を使っている方は、Spring Loadedはもう開発が進んでないので使わない方がいいです。代わりにSpring Boot1.3から使えるSpring Dev Toolsを使った方がいいです。

pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>
27
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
23