E4有个非常不错的功能,那就是依赖注入,这可以很方便的获取需要的对象,下面我们以简单的例子了解一下注入自己的对象。

   1、首先创建一个E4工程

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

相关文章: