在多个字段上应用相同的注释

时间:2011-03-07 08:22:38

标签: java spring annotations

是否可以在多个字段上应用相同的注释(如果有许多私有字段,并且只是看起来很难注释它们。

所以我拥有的就是

@Autowired private BlahService1 blahService1;
@Autowired private BlahService2 blahService2;
@Autowired private BlahService3 blahService3;

等等

我尝试了以下但不起作用

@Autowired{     
   private BlahService1 blahService1;       
   private BalhService2 blahService2;   
}

有些东西很喜欢自定义注释吗?

3 个答案:

答案 0 :(得分:7)

不,但您可以注释构造函数而不是字段。通过在构造要测试的实例时注入模拟依赖项(这是依赖注入有用的主要原因),这将使您的类更易于测试,这将带来额外的好处:

@Autowired
public MyClass(BlahService1 blahService1, BlahService2 blahService2, BlahService3 blahService3) {
    this.blahService1 = blahService1;
    this.blahService2 = blahService2;
    this.blahService3 = blahService3;
}

答案 1 :(得分:1)

该语言没有内置任何内容允许这种多注释。

然而,许多框架选择在类级别上允许某种“默认注释”。

例如,框架可以允许类级别的@Autowired注释暗示每个字段都应该自动连接。然而,这完全取决于实施的框架。

答案 2 :(得分:0)

您可以尝试使用设置字段的默认值,将其目标类型设置为字段来扩展自动连线注释界面,并且只要不需要,您可以通过将适当的值传递给仅在这些字段上的注释来启用它。