Junior — Middle
Can you tell me about the key features of transaction management within Spring?
sobes.tech AI
Answer from AI
In Spring, transactions are managed using the PlatformTransactionManager abstraction and the @Transactional annotation. Key features:
- Declarative management: with
@Transactional, you can specify that a method should run within a transaction, without explicit code for beginning/committing/rolling back. - Support for various transaction types: Spring supports both local transactions (e.g., JDBC) and distributed transactions (JTA).
- Propagation: you can configure how a transaction behaves when called from another transactional method (e.g.,
REQUIRED,REQUIRES_NEW). - Isolation and timeouts: you can set the isolation level and maximum execution time for a transaction.
- Exception handling: by default, transactions roll back on unchecked exceptions (RuntimeException), but behavior can be customized.
Example:
@Service
public class MyService {
@Transactional
public void updateData() {
// database operations
}
}