我有下面的代碼使用Guice做依賴注入。第一個是使用構造函數注入,另一個是在場的正上方添加@Inject
。這兩種方式有什麼區別嗎? Guice官方網站上建議使用構造函數注入。通過構造函數注入和通過字段註釋注入Guice有什麼區別?
class BillingService {
private final CreditCardProcessor processor;
private final TransactionLog transactionLog;
@Inject
BillingService(CreditCardProcessor processor, TransactionLog transactionLog) {
this.processor = processor;
this.transactionLog = transactionLog;
}
...
}
和:
class BillingService {
@Inject
private final CreditCardProcessor processor;
@Inject
private final TransactionLog transactionLog;
BillingService() {
}
...
}