NutzCN Logo
问答 Bug!!? PropertiesProxy为什么扫描出N多上层目录的properties文件
发布于 485天前 作者 天空 275 次浏览 复制 上一个帖子 下一个帖子
标签:

dao.js配置:

var ioc = {
		conf : {
			type : "org.nutz.ioc.impl.PropertiesProxy",
			fields : {
				paths : ["../"]
			}
		}
}

发布的目录结构:
D:\JavaKit\apache-tomcat-64-7.0.72\webapps\CMY\WEB-INF\classes\nutz
但是在


/** * 加载指定文件/文件夹的Properties文件,合并成一个Properties对象 * <p> * <b style=color:red>如果有重复的key,请务必注意加载的顺序!!<b/> * * @param paths * 需要加载的Properties文件路径 */ public void setPaths(String... paths) { clear(); try { List<NutResource> list = getResources(paths);//这句

返回的结果有:
[File[D:\JavaKit\apache-tomcat-64-7.0.72\webapps\CMY\WEB-INF\classes..\classes\db.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\webapps\CMY\WEB-INF\classes..\classes\freemarker.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\webapps\CMY\WEB-INF\classes..\classes\log4j.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\webapps\CMY\WEB-INF\classes..\classes\nutz\msg\zh-CN\user.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\conf\catalina.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\conf\logging.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\CMY\WEB-INF\classes\db.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\CMY\WEB-INF\classes\freemarker.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\CMY\WEB-INF\classes\log4j.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\CMY\WEB-INF\classes\nutz\msg\zh-CN\user.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\examples\WEB-INF\classes\LocalStrings.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\examples\WEB-INF\classes\LocalStrings_en.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\examples\WEB-INF\classes\LocalStrings_es.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\examples\WEB-INF\classes\LocalStrings_fr.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\webapps\examples\WEB-INF\classes\LocalStrings_pt.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\config.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\custom\cron.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\custom\db.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\custom\mail.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\freemarker.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\language\EYOOO_en_US.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\language\EYOOO_zh_CN.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\log4j.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\nutz\msg\zh-CN\user.properties],
File[D:\JavaKit\apache-tomcat-64-7.0.72\bin..\www\Estate\WEB-INF\classes\quartz.properties]]
发现Scan.me().loadResource("^.+[.]properties$", "../");不单扫当前项目下的文件,还会扫描整个tomcat下的文件。
是bug? 还是开发时有意图的呢?

5 回复

那是classpath下的路径, 别用 ".." 之类的东西

现在的目录结构是:
classes/nutz/dao.js
classes/db.properties
我们的意图是装载dao.js后,找上一级的db.properties,properties放在classes下是因为方便发布后改。
兽哥指的是JS要填实际路径?
相应如果只是扫CMY项目内的目录才是正解呀,nutz-1.r.61之前好象都没有问题的。

跟dao.js的路径无关的, 那是classes开始算的. 配置文件放在独立的目录下面嘛

classes/nutz/dao.js
classes/custom/db.properties
var ioc = {
		conf : {
			type : "org.nutz.ioc.impl.PropertiesProxy",
			fields : {
				paths : ["custom/"]
			}
		}
}

-_-!
归一!!!nutz变成开发规范了...

谢谢,其实就是properties不要放在class根目录。

添加回复
请先登陆
回到顶部