NutzCN Logo
问答 在setup里使用ioc注入PropertiesProxy对象失败
发布于 2741天前 作者 蛋蛋的忧伤 1921 次浏览 复制 上一个帖子 下一个帖子
标签:

我在setup里想注入一个PropertiesProxy对象,获取配置文件.

@IocBean
public class InitFilePath implements Setup {

    private static final Log log = Logs.get();

    @Inject
	private PropertiesProxy conf;
}

但是我在init里断点发现conf是null,我的dao.js配置:

var ioc = {
	   conf : {
            type : "org.nutz.ioc.impl.PropertiesProxy",
            fields : {
                paths : ["custom/"]
            }
        },
        dataSource : {
        	
        	factory:'$conf#make',
        	args : ["com.alibaba.druid.pool.DruidDataSource", "db."],
            type : "com.alibaba.druid.pool.DruidDataSource",
            events : {
                create : "init",
                depose : 'close'
            }
            /*fields : {	
                url : "jdbc:mysql://127.0.0.1:3306/nutzbook",
                username : "root",
                password : "admin",
                testWhileIdle : true, // 非常重要,预防mysql的8小时timeout问题
                //validationQuery : "select 1" , // Oracle的话需要改成 select 1 from dual
                maxActive : 100
            }*/
        },
        dao : {
            type : "org.nutz.dao.impl.NutDao",
            args : [{refer:"dataSource"}]
        }
};

我的mainModule:

@IocBy(type=ComboIocProvider.class, args={"*js", "ioc/",// 我的dao.js就在ioc下
        "*anno", "com.infogather",
        "*tx", // 事务拦截 aop
        "*async"}) // 异步执行aop

我感觉我应该没写错,难道是走setup了,配置文件都还没加载?或者ioc没加载?

6 回复

上次着急就直接手动获取conf对象了,就想搞明白是不是真的ioc还没加载....

notebook写的流程是先加载ioc,最后才执行的setup,按着逻辑注入应该没问题的.

启动日志的顺序

输出日志系统将通过什么接口输出,内置2种实现都会输出提示
System.out或System.err
Log4j
Nutz版权声明及反馈地址
NutFilter启动
资源扫描器开始初始化
NutFilter输出容器信息
加载MainModule
加载Ioc配置信息
解析路径映射的信息
执行用户自定义Setup的信息
NutFilter完成的耗时信息

Setup实现类一般不走ioc注入, 从NutConfig取出ioc容器就是了.

硬要走ioc的话

@SetupBy(value=InitFilePath.class, args="ioc:initFilePath ")

好的,这次明白了,谢谢大叔了.

对了,我的头像咋变了呢....

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