当前位置: 首页 > 工具软件 > nutz-book > 使用案例 >

Nutz 1.a.27 最新变化之一 -- XML配置ioc

郎正平
2023-12-01
刚刚发布的Nutz 1.a.27 , 正式支持使用XML来配置Ioc容器了.
参考新闻: [url]http://www.iteye.com/news/15809-nutz-1-a-27[/url]

问题是,如何使用呢? 我来简单介绍一下

就拿项目wiki的ioc入门例子来演示一下 [url]http://code.google.com/p/nutz/wiki/ioc_hello[/url]

用js来写的话:

var ioc = {
xiaobai : {
name : 'XiaoBai',
birthday : '2009-10-25 15:23:40'
},
xiaohei : {
type : 'nutz.demo.ioc.book.Pet', // 类型
singleton : false, // 是否为单件
args : [ 'XiaoHei' ], // 构造函数参数
fields : {
birthday : '2009-11-3 08:02:14',
friend : {refer : 'xiaobai'} // 指向容器里另外一个对象
}
}
}


改为使用xml来写:

<?xml version="1.0" encoding="UTF-8"?>
<ioc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="nutz-ioc-0.1.xsd">
<obj name="xiaobai" type="nutz.demo.ioc.book.Pet">
<field name="name"><str>XiaoBai</str></field>
<field name="birthday"><str>2009-10-25 15:23:40</str></field>
</obj>
<obj name="xiaohei" type="nutz.demo.ioc.book.Pet" singleton="false">
<args>
<str>XiaoHei</str>
</args>
<field name="birthday"></field>
<filed name="friend"><refer>xiaobai</refer></field>
</obj>
</ioc>


调用代码相应的改为:

public static void main(String[] args) {
Ioc ioc = new NutIoc(new XmlIocLoader("nutz/demo/ioc/pet/pets.xml"));
Pet pet = ioc.get(Pet.class, "xiaobai");
System.out.printf("%s - [%s]\n", pet.getName(), pet.getBirthday().getTimeZone().getID());
}
 类似资料: