Blog

spring boot で、freemarker のテンプレートの読み込みがサーバー再起動しないと読まれなくてだるいって時の対処方法

spring boot はデフォルトでは classpath から読んでるので、まあなんか再読み込みさせるのが難しい。eclipse なら自動でコンパイルされるのでまだマシだが、intellij だとなんか遅いしイライラする。

そこで、build.gradleに以下のように記述し、template の読み込みパスを変更した。

bootRun {
    systemProperty "spring.freemarker.templateLoaderPath", "file:src/main/resources/templates/,classpath:/templates/"
}

freemarker が適当に file:// から直接読んでくれるので、ファイル変更したらすぐ読み込まれて便利。なぜ application.properties or application.yml に書かないのかというと、application.yml 的なものは common module に入れておいて、web module, admin module などがそれに依存するみたいな構成にしたいからで、そのような構成になっている場合、common module に sub project のパスを直ガキできないからです。

まあ、そんな感じ。