Вы можете добиться большего успеха, установив бизнес-исключение службы, и контроллер отреагирует на это.Например, CustomerService может выдать исключение CustomerNotFoundException, а контроллер может превратить его в соответствующий код состояния HTTP, например:
@ExceptionHandler({ CustomerNotFoundException.class })
public ResponseEntity handleException(CustomerNotFoundException ex, WebRequest request) {
ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(), request.getDescription(false));
return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND);
}
Я не рекомендую переносить бизнес-логику на контроллер, посколькуКонтроллер - это больше компонент инфраструктуры, чем логика домена.Также рассмотрите возможность добавления другого протокола, например, двоичного протокола, который не будет использовать уровень контроллера.Вы можете пропустить свои проверки или бизнес-правила.