使用带有绑定代码的google-guice

时间:2014-06-23 09:12:53

标签: java dependency-injection guice

是否可以通过代码绑定类:

 bind(MessageService.class).to(FacebookService.class);
 Injector injector = Guice.createInjector(new AppInjector());     

但有一些注释?

1 个答案:

答案 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注释允许隐式指定绑定。

但是,我认为这不是定义绑定的好方法。明确定义的绑定更易于组合,并且它们集中在模块中,因此更易于管理。