Встречается на собеседованиях • сегодня
Можно ли заменить аннотацию @Repository на @Component
Да, можно, но с нюансами. @Repository — это специализированная версия @Component, предназначенная для DAO-слоя.
Различия:
@Repositoryавтоматически перехватывает исключения JDBC и преобразует их вDataAccessException(подходит для Spring Data).- Семантически яснее обозначает слой доступа к данным.
Пример замены:
java
@Component // Работает, но без обработки исключений как в @Repository
public class UserDaoImpl implements UserDao { ... }Когда можно заменить:
- Если не нужна автоматическая обработка исключений.
- Если класс не взаимодействует напрямую с БД (например, обертка над другим репозиторием).
Лучшая практика: Используй @Repository для DAO/репозиториев, чтобы явно обозначить их роль и получить преимущества Spring.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы