configure.properties只能用于配置dorado7的一些最基本的参数,更多的dorado7配置信息还是位于像context.xml这种类型的spring文件中,由于dorado7将spring作为底层最基础的依赖,dorado7自身的服务也是通过spring搭建起来的,当我们需要扩展dorado7的时候,大多数情况下我们都需要修改这些spring配置文件.
.properties与context.xml的关系
举例说明,我们观察context.xml中的如下代码:
<bean parent="dorado.dataConfigLoader"> <property name="configLocation" value="${model.root}/*.model.xml" /> </bean>
注意这个bean-dorado.dataConfigLoader的属性设定中"${model.root}/*.model.xml",其中的"${model.root}",这个格式大家都比较熟悉,这是一种Spring本身就支持的EL表达式的语法.通常情况下它都是用于从.properties配置文件中读取一些参数并在运行时进行替换.如这儿的参数是定义在之前的configure.properties和configure-debug.properties文件中
core.runMode=debug model.root=classpath*:models view.root=classpath:
model.root=file:C:/Users/Administrator/workspace/sample/src/models view.root=file:C:/Users/Administrator/workspace/sample/src data.config.autoReloadEnabled=true data.config.autoRecalculatePaths=true view.debugEnabled=true view.mergeJavaScript=false view.mergeStyleSheet=false view.useMinifiedJavaScript=false view.useMinifiedStyleSheet=false view.outputPrettyJson=true
根据之前运行模式的了解我们知道在context.xml在最终运行时${model.root}会被替换为"file:C:/Users/Administrator/workspace/sample/src/models",这样我们知道.properties与Spring配置文件之间的关系,.properties作为Spring配置文件中EL表达式的属性来源,另外.properties文件也做为dorado自身属性配置的存放处。对于专门为Spring配置文件提供服务的属性,例如刚才的"model.root",它的变量名我们也是可以修改的,只要在修改时保证.properties文件的属性名与Spring配置文件的EL表达式保持一致就可以。
运行时spring的上下文
根据Spring的运行机制,一旦你配置了一个Spring的MVC,系统产生的上下文对象除了默认的Context之外还会产生一个Servlet-Context,其中Servlet-Context会包含上面的Context对象,并作为parent关系存在,如图:
如果定义了多个Spring的MVC,就会有多个Servlet-Context,但是Context只有一个.根据运行机制我们知道,Servlet-Context可以访问Context中的bean,但是反过来却不行,这也是之前我们要求的在doradohome文件夹中,如果用户定义Spring的MVC最好将它定义在servlet-context.xml中的主要原因。关于Context与Servlet-Context的详细资料请查阅Spring中的相关文档。