关于子类实现的@Required注释

时间:2013-04-02 17:45:57

标签: java spring spring-mvc

我有一种情况,我只想在@Required的某些实现上将setter方法注释为parentClass。但是,除非我对基类进行注释,否则Spring不会将该方法识别为配置中所需的方法(也就是说,如果该字段不存在,则不会出现“缺少必需属性:foo”。以下是我正在尝试使用的代码:

public abstract class parentClass {
  public abstract void setFoo(Object foo);
}

public abstract class childClass extends parentClass {
  @Override
  @Required 
  public void setFoo(Object foo) {
    //setter code
  }
}

我在这里做错了什么?是否可以仅为某些子类指定注释?

1 个答案:

答案 0 :(得分:2)

不继承对类以外的项的注释。请参阅@Inherited Javadoc

  

请注意,如果使用带注释的类型来注释除类之外的任何内容,则此元注释类型无效。另请注意,此元注释仅导致注释从超类继承;已实现的接口上的注释无效。

我不确定JSR 305处理器如何管理这个技巧。