- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 GIN 在入口点注入(inject)依赖项的 web 应用程序。
private InjectorService injector = GWT.create(InjectorService.class);
@GinModules({PlaceContollerInject.class, RootViewInject.class})
public interface InjectorService extends Ginjector {
RootView getRootView();
PlaceController getPlaceConroller();
}
public class RootViewInject extends AbstractGinModule {
@Override
protected void configure() {
bind(RootView.class).to(RootViewImpl.class);
}
}
public class RootViewMobileInject extends AbstractGinModule {
@Override
protected void configure() {
bind(RootView.class).to(RootViewMobileImpl.class);
}
}
public class RootViewMobileInject extends AbstractGinModule {
@Override
protected void configure() {
bind(RootView.class).annotatedWith(Mobile.class).to(RootViewMobileImpl.class);
}
}
@Inject
private void setMobileRootView(@Mobile RootView rw) {
this.rw = rw;
}
最佳答案
我相信您会想要使用 GWT 延迟绑定(bind),使用类替换来绑定(bind)不同版本的 InjectorService,具体取决于用户代理。这将确保移动版本仅具有编译(和下载)的移动实现
因此,您将拥有 InjectorServiceDesktop、InjectorServiceMobile,它们都从 InjectorService 扩展,然后是 GWT.create(InjectorService.class),并让延迟绑定(bind)决定它应该使用哪个实现。
http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html#replacement
一个具有所有版本的 Ginjector 实例似乎很糟糕,因为这意味着始终下载两个版本的所有代码(而且您当然不想将所有桌面 View 下载到您的移动应用程序中)
编辑:正如 Thomas 在评论中指出的那样,由于 Injector 是生成的类,因此您需要将每个 InjectorServiceXXX 放在 GWT.create() 的简单持有者类中
InjectorServiceXXX,并使用替换在持有人之间切换。
关于gwt - 吉斯/ Gin 。如何注入(inject)多个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379247/
我在 Guice 字段注入(inject)方面遇到问题。考虑遵循类的层次结构。 abstract class Base{ @Inject protected MyService myS
我有一个实用方法: public static void MyUtility(ClassWhoDoesImportantThink instance,
我有一个单例: public class MySingleton{ public static getInstance(){//typical singleton getInstance
我有一个使用 GIN 在入口点注入(inject)依赖项的 web 应用程序。 private InjectorService injector = GWT.create(InjectorServic
尝试开始使用 Guice,并努力了解我的用例如何适合。 我有一个命令行应用程序,它需要几个可选参数。 例如,假设我有显示客户订单的工具 order-tool display --customerId
使用 Guice 3.0,我尝试注入(inject)一个可以抛出特定检查异常的 Provider。所以我使用Throwing Providers extension . 我为提供者创建了一个接口(in
假设我有一个 ThirPartyModule 第三方模块,它绑定(bind)了许多组件,然后我可以在我的应用程序中使用它们: Injector guice = Guice.createInjector
我正在尝试实现一个简单的 Guice+Shiro Web 应用程序。 web.xml guiceFilter com.google.inject.serv
我正在使用 Guice 开发一个小型 Web 框架。我有一个 Router 对象,一旦初始化,就会公开一个 getControllerClasses() 方法。我必须遍历所有这些动态返回的类以使用 G
我知道这可能不是最纯粹形式的依赖注入(inject),但假设我必须使用: @Inject Injector injector; 使用这个注入(inject)器,是否可以获得所有给定的绑定(bind)实
我是一名优秀的程序员,十分优秀!