是否有任何不通过代码绑定(bind)类的方法:
bind(MessageService.class).to(FacebookService.class);
Injector injector = Guice.createInjector(new AppInjector());
但是有一些注释吗?
最佳答案
是的,有一种方法可以使用注释来指定绑定(bind),Guice docs中有解释。 。该页面的示例:
@ImplementedBy(PayPalCreditCardProcessor.class)
public interface CreditCardProcessor {
ChargeResult charge(String amount, CreditCard creditCard)
throws UnreachableException;
}
@ProvidedBy(DatabaseTransactionLogProvider.class)
public interface TransactionLog {
void logConnectException(UnreachableException e);
void logChargeResult(ChargeResult result);
}
@ImplementedBy
和 @ProvidedBy
注释允许隐式指定绑定(bind)。
但是,我认为这并不是定义绑定(bind)的好方法。显式定义的绑定(bind)更具可组合性,并且它们集中在模块中,因此更易于管理。
关于java - 使用 google-guice 而不使用绑定(bind)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362247/