新手提问
在学习nutz的过程中(参考 Nutz 参考手册核心包),只要在配置文件里把单例模式改为false。那么它每次获取,都会生成一个新的实例。
但是实际情况,无论是true还是false。比较对象地址时,都是 true
var ioc = {
/* 默认不需要写类型,Nutz IOC 会自动转型*/
zhangsan: {
name: "zhangsan",
birthday: '2018-06-04 16:25:00'
},
lishi: {
type: "entity.Pet",
singleton : false, // 是否为单件
args: ['li shi'],
fields: {
birthday: '2018-06-04 16:30:00',
friend: {
refer: 'zhangsan'
}
}
}
}
public class HelloPet {
public static void main(String[] args) {
Ioc ioc=new NutIoc(new JsonLoader("pets.js"));
Pet pet=ioc.get(Pet.class,"zhangsan");
System.out.println(pet.getName()+" 的时区是 "+pet.getBirthday().getTimeZone().getID());
// 如果配置文件中声明了类型,则可不传入类型
Pet xh=ioc.get(null,"lishi");
System.out.println(xh.getName()+" 的朋友是 "+xh.getFriend().getName());
// 声明了 singleton: false,那么它每次获取,都会生成一个新的实例
Pet p1=ioc.get(null,"zhangsan");
Pet p2=ioc.get(null,"zhangsan");
// TODO: 2018/6/4 0004 为什么我设置了单例模式,还是true
System.out.println(p1==p2);
ioc.depose(); // 关闭 IOC 容器
}
}