tgoop.com/javaproglib/6482
Create:
Last Update:
Last Update:
🔹 @Transactional — оборачивает метод в транзакцию
@Transactional
public void saveData(Entity entity) {
repository.save(entity);
}
Автооткат при исключениях, но не ловит checked-исключения без rollbackFor = Exception.class.
🔹 @Async — делает метод асинхронным
@Async
public CompletableFuture<String> fetchData() {
return CompletableFuture.completedFuture("Hello");
}
Использует TaskExecutor, но не забываем про конфиг @EnableAsync.
🔹 @RestControllerAdvice — глобальный хендлер ошибок
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> handleException(RuntimeException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
}
}
Вместо тонны try-catch обрабатываем ошибки централизованно.