Common Template Engine 发布版本 | 每日构建 >>  English | 中文
下载 更新 论坛 关于我们
文档
首页概览
模板指南
表达式指南
语法外套指南
配置指南
扩展指南
API使用指南
常见问题
对比其它模板引擎
集成
MVC框架集成
JSP标签集成
缓存策略集成
日志框架集成
数据格式集成
脚本引擎集成
邮件发送组件集成
第三方集成依赖包
工具
调试器说明
查看器说明
模板生成器说明
模板转换器说明
编辑器插件说明
代码生成器说明
开发
架构设计
开发规范
项目计划
需求场景
资源
下载
许可协议
更新日志
UML图
Java Doc
测试覆盖率报告
社区
开发团队
论坛
知识库
邮件列表
问题列表
报告问题

 
CommonTemplate 配置指南

整个配置体系,从ConfigurationSettings开始,所有配置类全部留有setter注入接口,任何支持setter注入方式的IoC容器均可以完成配置。

一. Properties 配置
默认采用内置的IoC容器初始化配置,详细请参考:org.commontemplate.tools.bean.PropertiesBeanFactory
因为使用properties文件作为配置,所以需遵循java.util.Properties的所有规则,如:# ! = :等符号需转义等。
使用properties文件的优势:各属性项按行展开,便于上下级配置间层级覆盖。
配置规则:
(1) 基本类型:(与Java相似)
(a) null为空值,true, false为布尔值
如:
xxx=true
(b) 以数字开头的为Number,识别后缀L,F,D,S
如:
xxx=10
(c) 以单引号括起的为Character
如:
xxx='A'
(d) 以双引号括起的为String,如果非特殊串,双引号可省
如:
xxx="true"
xxx=abc
(2) 类和对象:
(a) 以.class结尾表示相应Class类元
如:
xxx=com.xxx.XXX.class
(b) 以()结尾表示创建实例,并以实例的Key加点号作为前缀,查找并注入其属性
如:
xxx=com.xxx.XXX()
xxx.yyy=yyy
(c) 以.static结尾表示通过静态字段获取实例,并以实例的Key加点号作为前缀,查找并注入其属性
如:
xxx=com.xxx.XXX.xxx.static
xxx.yyy=yyy
(d) 以().static结尾表示通过静态工厂方法获取实例,并以实例的Key加点号作为前缀,查找并注入其属性
如:
xxx=com.xxx.XXX.getXXX().static
xxx.yyy=yyy
(3) 集合:
(a) 以[]结尾表示List,并以[]前的名称查找List的项
如:
xxx=providers[]
providers[100]=com.xxx.XXXProvider()
providers[200]=com.yyy.YYYProvider()
(注:下标大小可为任意数字,只用于排序,通常都留有一定间隔,使子配置继承时可在中间添加项)
(b) 以{}结尾表示Map,并以{}前的名称查找Map的项
如:
xxx=providers{}
providers{xxx}=com.xxx.XXXProvider()
providers{yyy}=com.yyy.YYYProvider()
(c) 以<>结尾表示Set,并以<>前的名称查找Set的项,类似Map,但忽略Key
如:
xxx=providers<>
providers<xxx>=com.xxx.XXXProvider()
providers<yyy>=com.yyy.YYYProvider()
(注:尖括号内的Key只用于唯一标识,组装Set时将忽略)
(4) 引用:
以$开头表示引用其它配置项
如:
xxx=$yyy
yyy=com.xxx.XXXProvider()
(5) 配置继承:
特殊的Key:@extends表示继承其它配置内容,并用当前配置内容中的相同项覆盖被继承和内容,多个配置用逗号分隔
如:
@extends=parent1.properties,parent2.properties

使用方法:
PropertiesConfigurationLoader.loadConfiguration("xxx.properties"); // 在Classpath中查找
PropertiesConfigurationLoader.loadConfiguration("xxx.properties", resourceLoader); // 指定资源加载器
(注:如果@extends项未配置,则缺省为:@extends=org/commontemplate/tools/commontemplate.properties)

参考配置:
org/commontemplate/tools/commontemplate.properties
org/commontemplate/tools/context.properties
org/commontemplate/tools/template.properties
org/commontemplate/tools/directive.properties
org/commontemplate/tools/expression.properties

配置示例:
# 继承标准web配置,可不配,将根据应用环境缺省继承,如果在web环境下缺省继承以下配置:
@extends=org/commontemplate/tools/web/commontemplate.properties

# 调试模式在遇到断点时将挂起线程单步运行,非调试模式将隐藏部分不重要的异常信息
debug=false

# 国际化信息基名,规则同java.util.ResourceBundle,
# 如:假设基名为xxx/yyy,用户地区为zh_CN,
# 则在ClassPath中先查找xxx/yyy_zh_CN.properties,
# 不存在则查找xxx/yyy_zh.properties, 否则查找xxx/yyy.properties
messagesBasename=xxx/yyy

# null值输出时的默认替换字符串
defaultNullValue=

# boolean值输出时的默认替换字符串
defaultBooleanValue=true|false

# 日期输出时的默认格式
defaultDateFormat=yyyy-MM-dd HH:mm:ss

# 数字输出时的默认格式
defaultNumberFormat=###,##0.###

# 加载模板文件时的默认字符集编码,默认为UTF-8
# 若设置defaultEncoding=null将取当前系统的默认文件编码
defaultEncoding=UTF-8

# 模板文件根目录,模板加载时将以此目录作为根目录
rootDirectory=WEB-INF/views/

# 文件修改检测时间间隔,用于热加载,单位:毫秒(mm)
# 默认为30秒(30000mm),调试时可设成1秒(1000mm)
modificationCheckInterval=30000

# 模板运行日志输出端(可扩展)
loggerProvider=org.commontemplate.util.log.CommonsLoggerProvider()
#loggerProvider=org.commontemplate.util.log.Log4jLoggerProvider()
#loggerProvider=org.commontemplate.util.log.AvalonLoggerProvider()
#loggerProvider=org.commontemplate.util.log.Slf4jLoggerProvider()
#loggerProvider=org.commontemplate.util.log.JdkLoggerProvider()
#loggerProvider=org.commontemplate.util.log.SimpleLoggerProvider()
#loggerProvider=org.commontemplate.util.log.NoneLoggerProvider()

# 磁盘缓存目录,用于缓存模板编译结果
diskCache.directory=WEB-INF/cache/

# 缓存文件前缀
diskCache.filePrefix=

# 缓存文件后缀
diskCache.fileSuffix=.template

# 内存缓存策略,OSCache, EHCache需要另外的配置(可扩展)
memoryCache=org.commontemplate.standard.cache.LruCache()
#memoryCache=org.commontemplate.standard.cache.MruCache()
#memoryCache=org.commontemplate.standard.cache.FifoCache()
#memoryCache=org.commontemplate.standard.cache.WeakCache()
#memoryCache=org.commontemplate.standard.cache.SoftCache()
#memoryCache=org.commontemplate.standard.cache.StrongCache()
#memoryCache=org.commontemplate.standard.cache.OSCache()
#memoryCache=org.commontemplate.standard.cache.EHCache()
#memoryCache=org.commontemplate.standard.cache.JCache()
#memoryCache=org.commontemplate.standard.cache.NoneCache()

# 内存缓存容量,用于:LruCache, MruCache, FifoCache
memoryCache.maxSize=1000

# 自动导入宏模板,以xx为名称空间导入xxx.ctl和yyy.ctl的配置如下:
autoImport{my}=xxx.ctl,yyy.ctl

# $embed, $include, $display等指令查找模板时,是否本地化查找,不设置默认为true
# 如:$include{"xxx.ctl"},假设本地区域信息为zh_CN,首先查找"xxx_zh_CN.ctl",不存在则查找"xxx_zh.ctl",否则查找"xxx.ctl"
localizedLookup=true

# 响应内容类型, 不设置默认为text/html
response.contentType=text/html

配置说明:
(1) 非web应用,如代码生成器等,可以设置:
@extends=org/commontemplate/tools/commontemplate.properties
(2) 如果需去掉磁盘缓存,可以设置:
diskCache=null
(3) 如果需将缓存放在非web应用目录,可以设置:
diskCache.rootDirectory=C:/xxx/
(4) 默认是开启(非void函数)函数调用的,若需要禁止所有函数调用,可以设置:
functionAvailable=false

二. Spring 配置
使用SpringIoC容器组装配置,需spring.jar支持。
配置规则:
Spring配置的使用请参见:
http://www.springframework.org

使用方法:
SpringConfigurationLoader.loadConfiguration("xxx.xml"); // 在Classpath中查找

参考配置:
org/commontemplate/tools/commontemplate-spring.xml

三. 遗留 (注: 将在1.0版本统一删除)
(1) virtualDirectory
    起止版本:0.7.8加入,0.8.6废弃
    废弃原因:名称歧义
    替代方案:rootDirectory

 

版权所有 © 2007 - 2009 CommonTemplate 开发小组