DevOps junior

Чем @Component отличается от @Service, @Repository, @Controller?

Ответ

Технически почти ничем — все они помечают бин для регистрации в контексте. Но семантически: @Service — бизнес-логика, @Repository — работа с БД (плюс перевод исключений в DataAccessException), @Controller — веб-слой.

Разбор: Все четыре — стереотипные аннотации, мета-аннотированные @Component, поэтому механически они почти эквивалентны; различие смысловое (слой приложения), а у @Repository добавляется трансляция исключений персистентности в DataAccessException. Неверны выдумки про разный scope, транзакционность @Repository и навязанный порядок инициализации по стереотипу.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться