Встречается на 2% собеседований по Java
В чем разница между Service, Controller и Repository в Spring
Spring разделяет логику приложения на слои для лучшей организации кода:
Repository (DAO)
- Работа с данными (CRUD)
- Интерфейс с базой данных
- Аннотация
@Repository
java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}Service
- Бизнес-логика
- Связывает Repository и Controller
- Аннотация
@Service
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUser(Long id) {
return userRepository.findById(id).orElseThrow();
}
}Controller
- Обработка HTTP-запросов
- Возвращает ответ клиенту
- Аннотация
@Controllerили@RestController
java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
return userService.getUser(id);
}
}Главное различие: Repository - данные, Service - логика, Controller - HTTP. Это обеспечивает разделение ответственностей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы