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

一 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原有功能,缺点是所有模版缓存都会被刷新;如果希望只刷新指定的模版,只能二次开发;

原文地址:https://www.cnblogs.com/barneywill/p/9923860.html