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

В чем разница между аннотациями @Service и @Repository в Spring

Обе аннотации являются стереотипными и помечают классы как Spring-компоненты, но имеют разные семантические значения:

  1. @Repository
    • Обозначает слой доступа к данным (DAO)
    • Автоматически перехватывает исключения JDBC и преобразует их в Spring DataAccessException
    java
    @Repository
    public class UserRepositoryImpl implements UserRepository {
        // методы работы с БД
    }
  1. @Service
    • Обозначает слой бизнес-логики
    • Не имеет специальной обработки исключений
    • Часто используется для транзакционной логики
    java
    @Service
    public class UserServiceImpl implements UserService {
        // бизнес-логика
    }

Технически Spring обрабатывает их одинаково (как @Component), но семантическое разделение улучшает читаемость кода.

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

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

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

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