Transakcje Spring
Zarządzanie transakcjami za pomocą @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Jaka jest główna rola adnotacji @Transactional w Spring?
Jaka jest główna rola adnotacji @Transactional w Spring?
Odpowiedź
@Transactional wskazuje, że metoda powinna być wykonywana w kontekście transakcyjnym, zapewniając atomowość operacji bazodanowych. Spring automatycznie tworzy proxy AOP wokół klasy, aby obsługiwać rozpoczęcie, commit i rollback transakcji. To deklaratywne podejście znacznie upraszcza zarządzanie transakcjami w porównaniu z ręcznym programowaniem za pomocą TransactionTemplate lub PlatformTransactionManager.
2Jaki jest domyślny typ propagation dla @Transactional?
Jaki jest domyślny typ propagation dla @Transactional?
Odpowiedź
Propagation.REQUIRED to domyślny typ propagation. Przy tej strategii Spring dołączy do istniejącej transakcji, jeśli taka istnieje, lub w przeciwnym razie utworzy nową. Jest to najczęstsze i najbardziej intuicyjne zachowanie dla większości przypadków użycia, gwarantujące, że transakcja jest zawsze obecna dla operacji bazodanowych.
3Co się dzieje, gdy w metodzie @Transactional zostanie rzucony RuntimeException?
Co się dzieje, gdy w metodzie @Transactional zostanie rzucony RuntimeException?
Odpowiedź
Domyślnie Spring automatycznie wykonuje rollback transakcji, gdy zostanie rzucony RuntimeException (lub Error). Gwarantuje to, że modyfikacje bazy danych zostaną cofnięte w przypadku nieoczekiwanych błędów. Z kolei wyjątki checked (dziedziczące po Exception, ale nie po RuntimeException) domyślnie nie wywołują rollbacku, chyba że zostaną jawnie określone za pomocą rollbackFor.
Gdzie można zastosować adnotację @Transactional?
Jakie zachowanie przyjmuje Propagation.REQUIRES_NEW?
+27 pytań z rozmów
Inne tematy rekrutacyjne Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logowanie z SLF4J i Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Obsługa wyjątków
Bean Validation
Podstawy Spring Data JPA
Encje JPA i relacje
Zapytania JPA
Spring Data Repositories
Podstawy Spring Security
Spring Boot Actuator
Testy jednostkowe z JUnit i Mockito
Testowanie Spring Boot
Profiles i Environment
RestTemplate i WebClient
Async i Scheduling
Caching ze Spring
Spring WebFlux (Reactive)
Zaawansowane uwierzytelnianie i autoryzacja
JWT i bezpieczeństwo stateless
OAuth2 i Authorization Server
Spring Boot i Docker
Microservices ze Spring
Spring Cloud Config
Optymalizacja wydajności
GraalVM Native Images
Opanuj Spring Boot na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo