Встречается на собеседованиях • сегодня
Должны ли у контроллера быть методы для взаимодействия с ним
Контроллер в Spring (например, `@RestController`) должен содержать методы для обработки HTTP-запросов (GET, POST и т.д.), но не должен напрямую взаимодействовать с базой данных или бизнес-логикой. Вместо этого он делегирует вызовы сервисному слою.
Пример правильного подхода:
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/{id}")
public ResponseEntity getUser(@PathVariable Long id) {
return ResponseEntity.ok(userService.getUserById(id));
}
}
```
Контроллер должен:
1. Принимать HTTP-запросы
2. Валидировать входные данные
3. Преобразовывать DTO
4. Возвращать HTTP-ответы
Не должен:
1. Содержать бизнес-логику
2. Работать напрямую с БД
3. Иметь сложную обработку данных

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