Transazioni Spring
Gestione delle transazioni con @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Qual è il ruolo principale dell'annotazione @Transactional in Spring?
Qual è il ruolo principale dell'annotazione @Transactional in Spring?
Risposta
@Transactional indica che un metodo deve essere eseguito all'interno di un contesto transazionale, garantendo l'atomicità delle operazioni di database. Spring crea automaticamente un proxy AOP attorno alla classe per gestire l'inizio, il commit e il rollback delle transazioni. Questo approccio dichiarativo semplifica notevolmente la gestione transazionale rispetto alla programmazione manuale con TransactionTemplate o PlatformTransactionManager.
2Qual è il tipo di propagation predefinito per @Transactional?
Qual è il tipo di propagation predefinito per @Transactional?
Risposta
Propagation.REQUIRED è il tipo di propagation predefinito. Con questa strategia, Spring si unisce a una transazione esistente se ne esiste una, altrimenti ne crea una nuova. Questo è il comportamento più comune e intuitivo per la maggior parte dei casi d'uso, garantendo che sia sempre presente una transazione per le operazioni di database.
3Cosa succede se viene lanciata una RuntimeException in un metodo @Transactional?
Cosa succede se viene lanciata una RuntimeException in un metodo @Transactional?
Risposta
Per impostazione predefinita, Spring esegue automaticamente il rollback della transazione quando viene lanciata una RuntimeException (o un Error). Ciò garantisce che le modifiche al database vengano annullate in caso di errori imprevisti. Al contrario, le eccezioni checked (che ereditano da Exception ma non da RuntimeException) non attivano il rollback per impostazione predefinita, a meno che non siano specificate esplicitamente con rollbackFor.
Dove può essere applicata l'annotazione @Transactional?
Quale comportamento adotta Propagation.REQUIRES_NEW?
+27 domande da colloquio
Altri argomenti di colloquio Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestione delle eccezioni
Bean Validation
Fondamenti di Spring Data JPA
Entità JPA e relazioni
Query JPA
Spring Data Repositories
Fondamenti di Spring Security
Spring Boot Actuator
Test unitari con JUnit e Mockito
Testing in Spring Boot
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Autenticazione e autorizzazione avanzate
JWT e sicurezza stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices con Spring
Spring Cloud Config
Ottimizzazione delle prestazioni
GraalVM Native Images
Padroneggia Spring Boot per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis