首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Guice构造函数注入还是字段注入?

Guice构造函数注入还是字段注入?
EN

Stack Overflow用户
提问于 2018-09-27 06:42:35
回答 2查看 3.1K关注 0票数 2

我是新来Guice的。是首选构造函数注入还是首选字段注入?

字段注入似乎快速而简单,但测试将是一个挑战,因为缺少构造函数。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-09-27 07:00:08

我想指出一些不同之处,以便您可以自己决定:

  • 通过构造函数注入,您可以使用final修饰符。使用字段注入不能做到这一点。使用构造函数注入编写测试用例非常容易(就像你已经使用mentioned)
  • With构造函数注入一样,所有依赖项都是强制性的。为了声明一个类,您需要知道它所需的所有dependencies.
  • With字段注入,您将隐藏类的依赖关系,而不是显式地声明它们。

以上只是需要考虑的几点。我个人更喜欢构造器注入,因为它易于测试和final支持。

票数 3
EN

Stack Overflow用户

发布于 2020-01-03 15:05:16

这两种类型都很好。但您需要知道何时何地需要使用构造函数注入。

构造函数注入的优点是,

  1. 它提供了不可变性(如果使用得当)

In Constructor Injection you can use something like this.

public class MemberResource {

     private final IMemberService memberService;

     @Inject
     public MemberResource(IMemberService memberService) {
         this.memberService = memberService;
     }

}

  1. 单元测试变得更加容易。

Field injection的优点是编码更少。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52526968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档