以前の投稿で「Spring Boot 1.4でThymeleaf 3.0系を使うための設定方法」を紹介しましたが、Thymeleaf-Spring 3.0からSpELのコンパイラを有効にするオプションが追加され、SpELのコンパイラを有効にすることでテンプレートファイルに指定する式を評価する速度が向上するみたいです。Git HubのIssueには、35%程度のパフォーマンス向上を得ることができたという旨のコメントが記載されていました。(どの程度向上するかは、式の数や使い方に依存すると思うますが・・・)
検証バージョン
- Spring Boot 1.4.1.RELEASE
- Thymeleaf 3.0.2.RELEASE
- Thymeleaf-Spring 3.0.2.RELEASE
オプションの有効化
オプションを有効化したい場合は、Java Configクラスの内にSpringTemplateEngine
をインジェクションするメソッドを用意し、インジェクションされたSpringTemplateEngine
のsetEnableSpringELCompiler
メソッドにtrue
を渡すだけです
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
// ...
@Autowired
void configureThymeleafSpringTemplateEngine(SpringTemplateEngine templateEngine) {
templateEngine.setEnableSpringELCompiler(true); // trueを指定!!
}
}
まとめ
パフォーマンスが改善されたか測定もしてないし、体感もできませんでしたが・・・・デバッガ使ってSpELのコンパイラが有効になっていることは確認できました
現時点のSpring Bootのバージョンではプロパティを使ってカスタマイズすることはできませんが、Spring Bootで扱うThymeleafのデフォルトバージョンが3.0系になったら、プロパティでカスタマイズできるようにPRしようかな〜と思っています。(Spring Bootのdeveloperさんが対応してくれちゃう気もしてますが)