Назад к вопросам
Junior — Middle
67
Какое отличие между аннотациями @Component и @Repository в Spring?
Ответ от нейросети
sobes.tech AI
Аннотация @Component в Spring используется для обозначения любого компонента, который должен быть зарегистрирован как Spring Bean. Это общий стереотип, который можно применять к любым классам.
@Repository — это специализированный стереотип, который расширяет @Component и предназначен для классов, работающих с базой данных (DAO-слой). Помимо регистрации бина, @Repository добавляет обработку исключений, связанных с доступом к данным, автоматически переводя низкоуровневые исключения в исключения Spring DataAccessException.
Таким образом, основное отличие:
@Component— общий компонент.@Repository— компонент для работы с данными с дополнительной семантикой и обработкой исключений.
Пример:
@Repository
public class UserDao {
// методы доступа к БД
}
@Component
public class UserService {
// бизнес-логика
}