我有这个课:
public class House {
private final Door door;
private final Window window;
private final Roof roof;
@Inject
public House(Door door, Window window, Roof roof) {
this.door = door;
this.window = window;
this.roof = roof;
}
}
其中Door
,Window
和Roof
是具体的类。现在,如果我想为这种情况实现一个模块,我会这样做:
public class HouseModule extends AbstractModule {
@Override
protected void configure() {
bind(Door.class).to(Door.class);
bind(Window.class).to(Window.class);
bind(Roof.class).to(Roof.class);
}
}
但是我想知道这是否是绑定具体类的正确方法,还是有更简单的方法。我觉得有一个更简单的方法。
编辑
只是尝试了一下,它似乎不起作用:
1) Binding points to itself.
at de.tarent.guice.ex._1.HouseModule.configure(HouseModule.java:10)
编辑2
似乎根本不需要绑定:
Injector injector = Guice.createInjector();
House house = injector.getInstance(House.class);
似乎也可以。
Guice的即时绑定正是您想要的。根据您的Door
,Window
并Roof
满足以下要求(从Guice
文档中引用):
公共的,无参数的构造函数或带有@Inject批注的构造函数
一个空的Module实现就足够了:
public class HouseModule extends AbstractModule {
@Override
protected void configure() {
}
}
我是Guice的新手,正在为以下用例寻求帮助: 我开发了一个软件包(PCKG),其中该软件包的入门级依赖于其他类,例如: 在我的绑定模块中,我正在做: 注意我没有为A提供绑定信息,因为我想通过它的消费者类来提供它的绑定。(设计就是这样,所以我的要求是继续讨论主要问题,而不是设计)。 现在,我的消费者阶层正在做这样的事情: 同样在我的消费者包装中: Q1。我在消费者类中做的绑定正确吗?我很困惑,因为
使用Guice 3.0,我尝试注入一个提供程序,该提供程序可以抛出特定的已检查异常。所以我使用了抛出提供者扩展。 我为提供者创建了一个接口: 及其实施: 我在要注入提供者的对象上使用@Inject注释: 现在,我的问题是:如何绑定这个提供者? 由于使用了泛型,我想到了使用TypeLiteral: 但是对于这个bind()方法来说,
我是一个尝试使用Guice的人(这里是新手!!)我的一个项目。 所以我有一个 我的实现是 我还将DataQueue接口定义为 DataQueue的实现如下 在我的AppModule.Configure方法中,我有以下代码 我的ConsumerFactory是一个带有create()方法的接口,该方法返回一个使用者 我的DataQueueFactory是一个带有create()方法的接口,该方法返回
我正在使用Guice开发一个小型web框架。我有一个Router对象,一旦初始化,它就会公开一个getControllerClasses()方法。我必须循环所有这些动态返回的类,以使用Guice绑定它们。 我绑定路由器: 但是,我如何在一个模块中获得绑定的路由器实例,以便也可以绑定其getControllerClasses()方法返回的类? 我能够在模块中获取路由器实例的唯一方法是,将该实例绑定到
本教程的主要内容是介绍如何使用 jMonkeyEngine 进行游戏开发,旨在帮助初学者快速理解 jMonkeyEngine 中的核心概念。由于作者本人水品有限,文中难以避免出现谬误,如您在阅读过程中发现有不对的地方,请告知本人,我会尽快修正。 jME3 官方网站: 官网: http://jmonkeyengine.org/ 论坛: https://hub.jmonkeyengine.org Gi
由于绑定是在绑定模块中定义的,Google Guice 会在需要注入依赖项时使用它们。如果不存在绑定,它可以尝试创建即时绑定。绑定模块中存在的绑定称为显式绑定并且具有更高的优先级,而即时绑定称为隐式绑定。如果两种类型的绑定都存在,则考虑使用显式绑定进行映射。 以下是三种类型的即时绑定的示例。 绑定类型 描述 可注入的构造函数 非私有、无参数构造函数有资格进行即时绑定。另一种方法是使用@Inject