NutzCN Logo
问答 希望在ioc中使用 ${app.root} ,像使用 ${user.home} 一样
发布于 3073天前 作者 shevawen 3019 次浏览 复制 上一个帖子 下一个帖子
标签: ioc

Ioc中可以使用 ${user.home} ,但不可以使用 ${app.root}

fields : {
			driverClassName : "org.hsqldb.jdbcDriver",
			url : "jdbc:hsqldb:mem:${user.home}/.xxx/db",
			username : "sa",
			password : ""
		}

${app.root} 现在可以在 @AdaptBy 中使用

@AdaptBy(type = UploadAdaptor.class, args = { "${app.root}/WEB-INF/tmp" })
10 回复

这样写就可以了

@AdaptBy(type = UploadAdaptor.class, args = { "~/WEB-INF/tmp" })

理解错了...

话说, url那个是hsqldb支持的特性而已吧? nutz没替换这个

我去...Wendal真是神速
ok,原来是hsqldb替换的,那我写个类替换之后再传进去吧

提供一个替代方法给你

fields : {
	url : {java:"xxx.yyy.zzz.Helper.getDbPath('xxx.db')"}
}

Helper是个类

package xxx.yyy.zzz;

public class Helper {
    public static String getDbPath(String path) {
	  return Mvcs.getServletContext().getRealPath("/WEB-INF") + "/db/"+path;
	}
}

@shevawen 这个论坛配置了发帖watcher, 会推送通知到指定账号(其实就是配置了我自己嘛), 然后我的手机客户端就收到通知了...

@wendal 生生把一 BBS 用成了 IM :smile:

好吧,这个 md 不支持 emoji

如果我要在upload.json中

var ioc={
    tmpFilePool : {
        type : 'org.nutz.filepool.NutFilePool',
        // 临时文件最大个数为 1000 个
        args : [ "${app.root}/WEB-INF/tmp", 1000 ]
    },

如果不通过@Adapt参数,而是在ioc中,取到app.root,该怎么做?也是通过fileds来替换吗?

其实嘛,你可以继承NutFilePool随便玩

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