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

В чем разница между @Service и @Repository

@Service и @Repository — это стереотипные аннотации Spring, но они имеют разные семантические значения:

  • @Repository
    Обозначает слой доступа к данным (DAO). Spring автоматически перехватывает исключения, связанные с JDBC (например, SQLException), и преобразует их в непроверяемые DataAccessException. Также поддерживает декларативное управление транзакциями.
java
@Repository
public class UserRepository {
    // методы работы с БД
}
  • @Service
    Используется для бизнес-логики. Не имеет специфической технической обработки, как @Repository, но явно указывает на роль компонента в архитектуре.

    java
    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
        // бизнес-логика
    }

Ключевое отличие:
@Repository — для работы с данными, @Service — для бизнес-логики. Обе аннотации — частные случаи @Component, но с разным смысловым назначением.

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

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

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

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