我在freemarker上配置了我自己定制的freemarker模板存储,工作正常。
最近我想对缓存管理做一些更改,我需要从缓存键中读取属性&type;" TemplateKey"。不幸的是" TemplateKey"是"私人最终静态班"。我无权访问此类,我无法将Key对象强制转换回TemplateKey对象。
我看到最简单的方法是在TemplateCache.java中更改源代码,以更新要作为公共类公开的TemplateKey。
Freemarker设计师的问题:是否有任何特殊原因让这个TemplateKey不被暴露?是否有可能在下一次构建中公开它?
感谢。
落基
答案 0 :(得分:0)
乍一看,我会将密钥类保密,因为暴露它会引入向后兼容性约束,这可能妨碍进一步开发。但是,您的用例究竟是什么需要密钥中的信息呢?
答案 1 :(得分:0)
我们禁用了localelookup,在这种情况下,一个FTL文件适用于所有语言环境。但是密钥包括locale,因此每个语言环境都缓存了sampe模板,它在内存中重复。 一种解决方案是:在缓存中管理密钥时删除密钥中的区域设置,因此我需要读取密钥属性。但它仍然需要与其他更改结合使用,例如make template clone-able。 有关详细信息,请参阅此POS:Freemarker Template Cache are in same content when locale are different, is it a concern on wasting memory?
感谢。