Dorado 7 : 03. 运行模式(SEFC)

设计说明

在项目开发中我们经常会为了配合系统的调试做很多临时性的设定,当我们向正式环境中部署时,系统部署人员往往不是很了解这些设定,没有将这些属性设定调整为生产环境所需,从而导致很多问题,包括安全性方面的。根据这种情况dorado提供了运行模式处理机制,它允许你根据不同的运行环境定义名称不同的配置文件,而在最终发布时,我们只要调整一个系统全局变量就可以进行切换。这样我们从一种运行环境切换到另一种环境时,系统发布人员只要修改一个变量的值。很显然这很受系统部署人员的欢迎。

dorado7通过config.properties文件中runMode的值做运行模式的切换,如图:

系统运行时,会自动检测运行模式,并会给出运行模式的警告:

dorado中默认提供了三种运行机制: production(生产环境),debug(开发和调试),test(测试).如果不指定运行模式,默认就是production运行模式,另外运行模式也可以自定义。

在性能和压力测试环境下需要将运行模式切换为Test模式.

配置装载规则

configure.properties是首先被装载的属性文件,如果发现core.runMode做了设定,则系统会自动查找configure-xxx.properties文件,并加载。

如core.runMode为"debug",则系统自动查找configure-debug.properties文件。并且将configure-debug.properties中的配置信息覆盖到configure.properties配置文件中。

但是产品正式发布的时候建议将core.runMode的值清空,默认情况下如果dorado发现这个值为空,就自动的以production模式运行。这个时候按照上面配置装载规则的说明其中的configure-debug.properties中的属性就不会起作用.

如何定义新的运行模式?我们只要将core.runMode的值给一个新的值(如aaa),并定义一个configure-aaa.properties,这样我们就创建了一个新的运行模式

另外doradohome下的其它配置文件也支持运行模式,如:context.xml文件,如我们设定core.runMode为debug时,我们就可以定义一个context-debug.xml文件。在debug运行模式下dorado会尝试查找context-debug.xml文件,并覆盖context.xml文件。

dorado默认提供的常用配置属性

属性名

默认值

说明

core.runMode

production

生产环境

view.debugEnabled

false

是否允许启用Dorado提供的Debugger工具,如果启用,则在浏览器中的视图中按F2快捷按钮就可以打开Debugger工具

view.useMinifiedJavaScript

true

是否使用压缩后的JavaScript,一般产品调试时采用非压缩状态,有利于调试,而正式发布后采用压缩状态,有利于降低网络的数据流量,提供性能

view.useMinifiedStyleSheet

true

是否使用压缩后的Style,原理同上。

view.outputPrettyJson

false

是否格式化输出JSON数据,原理同上。

view.skin

default

默认的皮肤

view.mergeJavaScript

true

是否合并JavaScript,正式发布后建议采用合并,原理同上

view.mergeStyleSheet

true

是否合并CSS文件正式发布后建议采用合并,原理同上

view.useRandomStringAlias

true

为LoadRunner这类压力测试工具专门设计的参数

是否启用随机别名机制,例如作为服务的view的名字

core.classPathResourceReloadablefalse

主要针对资源类文件的加载,如js,css等,一般用在deubg模式,避免重新发布和重启

data.config.autoReloadEnabledfalse

针对doradohome文件的重新加载,也适用于debug模式

data.config.autoRecalculatePathsfalse

autoRecalculatePaths与autoReloadEnabled类似,处理pathPrefix

view.showExceptionStackTracefalse是否显示ExceptionStackTrace

Attachments:

logger-runMode.png (image/png)
configure.png (image/png)