freemarker中的配置项template_update_delay表明模版的缓存时间,单位是s,超过缓存时间则从磁盘加载最新的模版,具体细节如下:

1)freemarker中获取模版的方法在Configuration中:

 【原创】Java基础之Freemarker(1)模板加载及清空机制

2)Configuration的getTemplate方法直接代理给TemplateCache:

 【原创】Java基础之Freemarker(1)模板加载及清空机制

3)TemplateCache中首先会尝试从缓存中加载模版:

 【原创】Java基础之Freemarker(1)模板加载及清空机制

然后根据template_update_delay来判断缓存中的模版是否需要刷新;

 【原创】Java基础之Freemarker(1)模板加载及清空机制

 

二 Freemarker自带刷新接口

Freemarker本身提供的刷新接口是Configuration的clearTemplateCache方法,可以用来清空所有的模版缓存;

1 使用spring mvc

1.1 配置template_update_delay

 【原创】Java基础之Freemarker(1)模板加载及清空机制

1.2 手工刷新

 【原创】Java基础之Freemarker(1)模板加载及清空机制

 

2 直接使用freemarker

2.1 配置template_update_delay

 【原创】Java基础之Freemarker(1)模板加载及清空机制

2.2 手工刷新

 【原创】Java基础之Freemarker(1)模板加载及清空机制

 以上手工刷新方法的优点是不需要修改源代码,直接利用freemarker原有功能,缺点是所有模版缓存都会被刷新;如果希望只刷新指定的模版,只能二次开发;

相关文章:

  • 2022-12-23
  • 2021-11-28
  • 2021-09-29
  • 2021-07-23
  • 2021-05-05
  • 2022-02-10
  • 2021-09-13
猜你喜欢
  • 2021-07-01
  • 2021-12-12
  • 2021-11-12
  • 2022-01-24
  • 2021-07-10
  • 2022-12-23
相关资源
相似解决方案