E4有个非常不错的功能,那就是依赖注入,这可以很方便的获取需要的对象,下面我们以简单的例子了解一下注入自己的对象。
1、首先创建一个E4工程
2、编写需要注入服务对象,比如
return name;
}
}
}
}
和
return name;
}
}
3、注册服务(可选步骤)
ContextInjectionFactory是一个依赖注入工厂,可以向Domain对象注入数据和服务。
inject(Object object, IEclipseContext context)方法用于将一个对象注入到context中,如果context参数为空,则使用插件默认的context对象。
make(Class<T> clazz, IEclipseContext context) 将指定类注入到context中,会自动帮助你实例化对象(需无参构造方法)。
4、测试
在OpenHandler.java放中新增字段接受对象的注入
@Inject
TestInjectObject testInjectObject;
@Inject
TestInjectObject2 testInjectObject2;
然后在execute方法中判断是否注入成功,完整例子:
new FileDialog(shell);
dialog.open();
}
}
你不妨自己测试一下,很简单的。
其实你可以省略“注册服务”这个过程,程序会自动实例化一个对象,比如你在代码这样写:
@Inject
TestInjectObject testInjectObject;
@Inject
TestInjectObject testInjectObject_clone;
如果打印 testInjectObject == testInjectObject_clone 会发现结果 == false!
如果你需要让你的对象是单例的,给你的类加上@Singleton吧:
@Singleton
public class TestInjectObject {
。。。。。。
}
这样testInjectObject == testInjectObject_clone 的结果 == true