可以继承@Repository注释吗?

时间:2011-02-22 17:59:47

标签: java spring annotations

可以继承@Repository注释吗?

我可以创建一个

@Repository
public abstract class BaseRepository {
}

然后在不指定@Repository注释的情况下扩展它?

public class MyRepository extends BaseRepository {
}

我如何知道是否可以继承注释?

3 个答案:

答案 0 :(得分:6)

没有。 documentation about stereotypes对此一无所知。

另外,想象一下当您指定名称@Repository("foo")时的情况 - 然后每个子类将被命名为foo,这将导致异常(重复的名称)

答案 1 :(得分:6)

请参阅http://www.docjar.com/html/api/org/springframework/stereotype/Repository.java.html

没有@Inherited注释,因此它不会被继承。

答案 2 :(得分:2)

默认情况下,子类不会继承注释,除非使用@Inherited注释自己(请参阅下面的James Kingsbery的注释),即使这样,只有在类级别使用它们时才会注释。 @Repository-annotation本身未使用@Inherited进行注释(我从代码中检查过),因此您必须单独注释子类。