Встречается на собеседованиях • сегодня

В чем разница между аннотациями @Repository, @Service и @Controller

@Repository, @Service и @Controller — стереотипные аннотации Spring, которые обозначают разные слои приложения:

  • @Repository — помечает класс как DAO/репозиторий. Автоматически перехватывает исключения JDBC и преобразует их в Spring DataAccessException.
java
@Repository
public class UserRepositoryImpl implements UserRepository { ... }
  • @Service — бизнес-логика. Указывает, что класс содержит сервисные операции. Часто используется для транзакций.
java
@Service
public class UserService { ... }
  • @Controller — маркирует класс как Spring MVC контроллер, обрабатывающий HTTP-запросы.
java
@Controller
@RequestMapping("/users")
public class UserController { ... }

Все они являются специализациями @Component, но семантически разделяют ответственность. Разница в обработке: например, @Repository взаимодействует с персистентностью, а @Controller — с веб-слоем.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы