Можно ли наследовать аннотацию @Repository? - PullRequest
3 голосов
/ 22 февраля 2011

Можно ли наследовать аннотацию репозитория?

Могу ли я создать

@Repository
public abstract class BaseRepository {
}

, а затем расширить его без указания аннотации @Repository?

public class MyRepository extends BaseRepository {
}

Как узнать, может ли аннотация наследоваться?

Ответы [ 3 ]

6 голосов
/ 22 февраля 2011

Нет.Документация о стереотипах ничего не говорит об этом.

Кроме того, представьте себе случай, когда вы указываете имя @Repository("foo") - тогда каждый подкласс будет называться foo, что приведет кисключение (повторяющиеся имена)

6 голосов
/ 22 февраля 2011

См. http://www.docjar.com/html/api/org/springframework/stereotype/Repository.java.html

Нет аннотации @Inherited, поэтому она не наследуется.

2 голосов
/ 22 февраля 2011

По умолчанию аннотации не наследуются подклассами, если они не помечены как @Inherited (см. Комментарий Джеймса Кингсбери ниже), и даже тогда, только когда они используются на уровне класса.@ Аннотация репозитория сама по себе не аннотирована (я проверял по коду) с @Inherited, поэтому вам придется аннотировать подкласс отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...