3
private Service service;

@Inject
public ClassName(final Service service) {
    this.service = service;
}

@Inject
private Service service;

有人可以告诉我这两种注射方式的区别吗?

4

1 回答 1

2

第一个说注入器将调用您的构造函数并提供适当的服务对象。你在构造函数中做什么取决于你。

第二个说它会适当地设置你的成员变量(这意味着你可以有一个默认的构造函数,它仍然会神奇地为你设置变量)。

一般来说,我更喜欢第一种,因为它使您的依赖关系明确,但我确信使用方法 2 有充分的理由。

我没有使用过 RoboGuice,但我认为它具有与常规 Guice 相同的一般原则 - 并且一些相关的 @Inject 文档位于他们的 wiki:http ://code.google.com/p/google-guice/wiki /注射

于 2011-06-30T04:41:29.583 回答