一 freemarker加載模版機制
freemarker中的配置項template_update_delay表明模版的緩存時間,單位是s,超過緩存時間則從磁盤加載最新的模版,具體細節如下:
1)freemarker中獲取模版的方法在Configuration中:
2)Configuration的getTemplate方法直接代理給TemplateCache:
3)TemplateCache中首先會嘗試從緩存中加載模版:
然后根據template_update_delay來判斷緩存中的模版是否需要刷新;
二 Freemarker自帶刷新接口
Freemarker本身提供的刷新接口是Configuration的clearTemplateCache方法,可以用來清空所有的模版緩存;
1 使用spring mvc
1.1 配置template_update_delay
1.2 手工刷新
2 直接使用freemarker
2.1 配置template_update_delay
2.2 手工刷新
以上手工刷新方法的優點是不需要修改源代碼,直接利用freemarker原有功能,缺點是所有模版緩存都會被刷新;如果希望只刷新指定的模版,只能二次開發;