Назад к вопросам
СБЕР
Senior
7
В чём разница между аннотациями @Repository и @Component в Spring?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Аннотация @Component — это базовая стереотипная аннотация в Spring, которая указывает, что класс является компонентом и должен быть зарегистрирован в контексте Spring как bean.
@Repository — это специализированная аннотация, которая расширяет @Component и предназначена для обозначения слоя доступа к данным (DAO). Она добавляет дополнительную семантику и может влиять на обработку исключений, например, преобразуя исключения специфичные для базы данных в Spring DataAccessException.
Итого:
- @Component — общий компонент.
- @Repository — компонент слоя доступа к данным с дополнительной обработкой исключений.
Пример:
@Repository
public class UserRepository {
// методы доступа к БД
}
@Component
public class UserService {
// бизнес-логика
}