在刚才的.properties中我们看到几个变量的定义:
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
我们看到同样是model.root的值,有以classpath*作为前缀的,也有一file作为前缀的,因此下面要简单介绍一下dorado中的资源定位表达式.
定义:资源定位表达式通常用来描述一个或一组文件的位置,
它的基本格式为:[协议:]路径
就是协议后面加冒号再加路径,中括号表示其中的内容可省略。
目前支持的协议有:
- file:表示操作系统的文件系统路径;
- home:表示doradoHome所在位置的起始路径;
- classpath:Java资源路径
- classpath*:Java资源路径,是特别为了从多个jar包中根据通配符批量的提取资源而提供的;
协议是可以省略的,当不指定具体的协议时Dorado7会自行判断应如何理解用户给出的路径。
如果路径以"/"开头,Dorado会认为该路径描述是项目web根下的文件。
如果路径不以"/"开头,Dorado按照classpath协议来处理路径。
如有需要开发人员可以自行扩展协议。
示例说明
- file:d:/workspace/test/foo.txt-\- (file:d:/workspace/test/foo.txt--)就是访问d:/workspace/test目录下的foo.txt文件
- classpath:org/myproject/configure.xml 与 org/myproject/configure.xml 是等效的。
- /WEB-INF/template.jsp--由于以"/"作为前缀,默认就认为是web根目录下的WEB-INF下查找template.jsp文件file:d:/workspace/test/**/*.xml所有d:/workspace/test目录(包括子文件夹)下的xml文件都会被该表达式命中。
- classpath:models/*.xml 或 models/*.xml 所有classpath中models下的xml文件都会被该表达式命中。
- classpath*:models/*.xml 所有jar包和classpath中models下的xml文件都会被该表达式命中。