Dorado 7 : 04. Spring上下文(SEFC)

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中的相关文档。

Attachments:

Servlet-Context.png (image/png)