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

В чем разница между аннотациями component, repository и service в Spring

Все три аннотации являются специализированными версиями @Component и используются для автоматического обнаружения бинов.

  1. @Component - базовая аннотация, отмечающая класс как кандидат для автоматического создания бина. Используется для любых компонентов.
  1. @Repository - помечает класс как DAO/репозиторий. Добавляет автоматическое преобразование SQL-исключений в Spring DataAccessException.

  2. @Service - указывает, что класс содержит бизнес-логику. Не добавляет особой функциональности, но улучшает читаемость кода.

Пример:

java
@Component
public class MyComponent {}

@Repository 
public class UserRepository {}

@Service
public class UserService {}

Все три аннотации работают одинаково с точки зрения DI, но имеют разные семантические значения. @Repository и @Service являются более конкретными вариантами @Component.

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

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

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

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