NutzCN Logo
问答 使用IOC读取配置文件,注解取不到值的问题,求解答
发布于 2307天前 作者 qq_54da2be9 2016 次浏览 复制 上一个帖子 下一个帖子
标签:

url.properties中的配置数据
producer=canoe.url
configuration=dev-service.cashalo.com

conf.js的配置

var ioc = {
	conf : {
		type : "org.nutz.ioc.impl.PropertiesProxy",
		fields : {
			paths : [ "custom/db.properties","custom/url.properties"]
		}
	},
	$aop : {
        type : 'org.nutz.ioc.aop.config.impl.JsonAopConfigration',
        fields : {
            itemList : [
                ['com.oriente.canoe.dao','.+','ioc:daoInterceptor','false']    
            ]
        }
    }
};

注解

	@Inject("java:$conf.get('producer')")
	private String producer;
	
	@Inject("java:$conf.get('configuration')")
	private String configuration;

producer打印日志显示为null,求解答是什么原因

7 回复

日志写在哪里的? 有一种可能性是构造方法里面获取属性值, 那是行不通的

@IocBean
public class MainSetup implements Setup {
	
	@Inject("java:$conf.get('producer')")
	private String producer;
	
	@Inject("java:$conf.get('configuration')")
	private String configuration;
	
	

	public void destroy(NutConfig nc) {
		
	}

	public void init(NutConfig nc) {
		Ioc ioc = nc.getIoc();
		Mvcs.DISABLE_X_POWERED_BY = true; // Don't show Nutz as X-Powered-By value.
		Dao dao = ioc.get(Dao.class);
		Daos.createTablesInPackage(dao, "com.oriente.dao.models", false);
		System.out.println(this.producer+"~~~~~~~~~~~~~~~~~~~");
		QbnciConfigMgr configMgr = new QbnciConfigMgr("canoe.url","dev-service.cashalo.com", true);
		configMgr.start();
	}

}

这就是取值的地方,不知道是哪里写的不对

哦, 不要这样写, 换个方式

Ioc ioc = nc.getIoc();
PropertiesProxy conf = ioc.get(PropertiesProxy.class, "conf");
String producer = conf.get("producer");
String configuration = conf.get("configuration");

好的 ,多谢 我改下看。

可以了,多谢,我想请问下那样写的问题是什么,因为我看nutz的网站上说那样写可以,想知道一下原因。

需要SetupBy的地方加 args={"ioc:xxxSetup"} 才能使用注入, 一般不需要这样搞

哦,好的 明白了。谢谢

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