Какую аннотацию Spring использовать для класса Hibernate DAO? - PullRequest
1 голос
/ 13 июня 2011

Какую аннотацию Spring следует использовать для классов Hibernate DAO, чтобы их можно было найти в процессе сканирования?@ Репозиторий, @ Сервис или @ Компонент?Я не мог понять разницу.Сейчас я нахожусь на весне 2.5.6.

PS Может кто-нибудь быстро подсказать мне идею слоя?Я только слышал что-то вроде уровня представления, но не имею точного понимания, как мне называть это и каков уровень бизнеса?Есть ли другие?

Ответы [ 3 ]

2 голосов
/ 13 июня 2011

Это не имеет большого значения, но @Repository хорошая ставка.В руководстве Spring сказано следующее:

Начиная с Spring 2.0, аннотация @Repository была введена в качестве маркера для любого класса, который выполняет роль или стереотип репозитория (aka Data Access Object или DAO)

2 голосов
/ 13 июня 2011

@Repository будет моей рекомендацией.

Уровень представления означает веб-интерфейс, поэтому для него следует использовать аннотацию @Controller.

Сервисы реализуют сценарии использования с использованием интерфейсов POJO; пометить это как @Service. Контроллеры будут использовать сервисы для выполнения сценариев использования.

0 голосов
/ 13 июня 2011

В ядре Spring я не верю, что есть какая-то разница. Как правило, эти аннотации стереотипа используются для auto-detection when using annotation-based configuration and classpath scanning (из документов Spring). Можно использовать какое-то программное обеспечение, чтобы использовать их, но в отсутствие такого программного обеспечения я выбираю стереотип, который наиболее мне подходит. В случае DAO я обычно выбираю @Component, хотя @Repository также является хорошим вариантом.

...