2017-06-23 17:09
@i++ 你的建议我会综合考虑,是一个改进的思维方向,但还要考虑更多因素,例如文件型的模板,即便改名称,也一定非常有限,大部分情况下是去改文件型模板中的内容
场景很重要,这个问题主要集中在 String 型的 Template 处理,还有很多思路可以考虑,例如,改进 MemoryStringSource,让其自身可以维护 cache都是可以考虑的方向
2017-06-23 17:06
@i++ 你可以通过扩展 Engine 的方式来解决:
public class MyEngine extends engine {
public Template getTemplateByString(String content) {
// 在这里用一个 Map 存放你所有的 key 值
// 然后用一个独立的定时器定时清理一下就可以了
// 清理的时候可以简单性的 remove掉所有 cache,这个不耗什么性能
}
}
随后可以调用 Engine.setMainEngine(new MyEngine()); 的方式替换掉 jfinal 的主 Engine 对象
最后你就可以在任何地方通过 Engine.use() 来获取到你自己的 MyEngine 对象了,当然你也可以自行管理你的 MyEngine 对象
2017-06-23 11:30
@i++ jfinal 3.1 版本改进了这个地方,升级到了 jfinal 3.1 没?