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

Можно ли заменить аннотацию @Repository на @Component

Да, можно, но с нюансами. @Repository — это специализированная версия @Component, предназначенная для DAO-слоя.

Различия:

  1. @Repository автоматически перехватывает исключения JDBC и преобразует их в DataAccessException (подходит для Spring Data).
  2. Семантически яснее обозначает слой доступа к данным.

Пример замены:

java
@Component // Работает, но без обработки исключений как в @Repository
public class UserDaoImpl implements UserDao { ... }

Когда можно заменить:

  • Если не нужна автоматическая обработка исключений.
  • Если класс не взаимодействует напрямую с БД (например, обертка над другим репозиторием).

Лучшая практика: Используй @Repository для DAO/репозиториев, чтобы явно обозначить их роль и получить преимущества Spring.

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

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

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

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