在多线程运行环境中, Configuration
实例,
Template
实例和数据模型应该是永远不能改变(只读)的对象。
也就是说,创建和初始化它们(如使用 set...
方法)之后,就不能再修改它们了(比如不能再次调用
set...
方法)。
这就允许我们在多线程环境中避免代价很大的同步锁问题。要小心 Template
实例;
当使用了 Configuration.getTemplate
方法获得
Template
一个实例时,也许得到的是从模板缓存中缓存的实例,
这些实例都已经被其他线程使用了,所以不要调用它们的
set...
方法
(当然调用 process
方法还是不错的)。
如果只从 同一个 独立线程中访问所有对象, 那么上面所述的限制将不会起作用。
使用FTL来修改数据模型对象或者 共享变量 是不太可能的,
除非将方法(或其他对象)放到数据模型中来做。
我们不鼓励你编写修改数据模型对象或共享变量的方法。多试试使用存储在环境对象
(这个对象是为独立的 Template.process
调用而创建的,
用来存储模板处理的运行状态)中的变量,所以最好不要修改那些由多线程使用的数据。
要获取更多信息,请阅读:变量,范围