FreeMarker 缓存处理

gzh412163 发布于 2014/06/14 18:01
阅读 4K+
收藏 6

FreeMarker 缓存处理

FreeMarker 的缓存处理主要用于模版文件的缓存,一般来讲,模版文件改动不会很频繁,在一个流量非常大的网站中,如果频繁的读取模版文件对系统的负担还是很重的,因此 FreeMarker 通过将模版文件的内容进行缓存,来降低模版文件读取的频次,降低系统的负载。

当处理某个模版时,FreeMarker 直接从缓存中返回对应的 Template 对象,并有一个默认的机制来保证该模版对象是跟模版文件同步的。如果使用的时候 FreemarkerServlet 时,有一个配置项 template_update_delay 用来指定更新模版文件的间隔时间,相当于多长时间检测一下是否有必要重新加载模版文件,0 表示每次都重新加载,否则为多少毫秒钟检测一下模版是否更改。

FreeMarker 定义了一个统一的缓存处理接口 CacheStorage ,默认的实现是 MruCacheStorage 最近最少使用的缓存策略。一般情况下,很少需要对缓存进行扩展处理。您可以通过下面的代码指定最大缓存的模版数:cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250))

其中第一个参数是最大的强引用对象数,第二个为最大的弱引用对象数。这两个值 FreeMarker 默认的是 0 和 Integer.MAX_VALUE,表明模版缓存数是无限的


参考:

1.http://aixiangct.blog.163.com/blog/static/915224612011413113013687/


------------------------------

1.对缓存不是很懂

2.希望大家继续补充

加载中
0
gzh412163
gzh412163
问题提出:

@红薯 你好,想跟你请教个问题:

现在正在为公司做开发框架,大概的做法是使用Freemarker的宏,生成ExtJS的界面代码。比如<@button text='btnTest' text='按钮'/>,当然还有更复杂的嵌套的宏,比如:<@gird />等。这样的话有的界面会变得比较复杂。请问Freemarker可以缓存吗

中国学网其他用户对此信息的回答或评论:

===========================================================================================
Andre.Z 回答于 2012-08-01 15:20 

freemarker也只是缓存模板。
你要缓存输出的数据内容,用别的缓存框架吧。


===========================================================================================
opal 回答于 2012-08-01 16:13 
可以
0
gzh412163
gzh412163

1.参考:http://www.ibm.com/developerworks/cn/java/j-lo-freemarker/


FreeMarker 缓存处理

FreeMarker 的缓存处理主要用于模版文件的缓存,一般来讲,模版文件改动不会很频繁,在一个流量非常大的网站中,如果频繁的读取模版文件对系统的负担还是很重的,因此 FreeMarker 通过将模版文件的内容进行缓存,来降低模版文件读取的频次,降低系统的负载。

当处理某个模版时,FreeMarker 直接从缓存中返回对应的 Template 对象,并有一个默认的机制来保证该模版对象是跟模版文件同步的。如果使用的时候 FreemarkerServlet 时,有一个配置项 template_update_delay 用来指定更新模版文件的间隔时间,相当于多长时间检测一下是否有必要重新加载模版文件,0 表示每次都重新加载,否则为多少毫秒钟检测一下模版是否更改。

FreeMarker 定义了一个统一的缓存处理接口 CacheStorage ,默认的实现是 MruCacheStorage 最近最少使用的缓存策略。一般情况下,很少需要对缓存进行扩展处理。您可以通过下面的代码指定最大缓存的模版数:

cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250))

其中第一个参数是最大的强引用对象数,第二个为最大的弱引用对象数。这两个值 FreeMarker 默认的是 0 和 Integer.MAX_VALUE,表明模版缓存数是无限的。

0
许雷神
许雷神
以前用过这货,学习了
返回顶部
顶部