是否可以通过代码绑定类:
bind(MessageService.class).to(FacebookService.class);
Injector injector = Guice.createInjector(new AppInjector());
但有一些注释?
答案 0 :(得分:2)
是的,有一种方法可以使用注释来指定绑定,在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
注释允许隐式指定绑定。
但是,我认为这不是定义绑定的好方法。明确定义的绑定更易于组合,并且它们集中在模块中,因此更易于管理。