通过构造函数注入和使用Guice注入字段注释有什么区别?

时间:2016-12-05 03:27:38

标签: dependency-injection guice

我有以下代码使用Guice进行依赖注入。第一个是使用构造函数注入,而另一个是在字段正上方添加@Inject。这两种方式有什么区别吗?似乎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() {

    }
    ...       
}

0 个答案:

没有答案