Junior — Middle
How can transaction management be implemented within the Spring framework?
sobes.tech AI
Answer from AI
In Spring, transaction management is implemented using the @Transactional annotation and/or the programmatic API PlatformTransactionManager.
Main methods:
@TransactionalAnnotation- Placed above a class or method.
- Spring automatically starts a transaction when entering the method and commits or rolls it back depending on the outcome.
- You can configure parameters such as propagation, isolation, rollbackFor.
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// other operations within the same transaction
}
}
- Programmatic Transaction Management
- Uses
PlatformTransactionManagerandTransactionTemplate. - Allows more flexible transaction control, for example, in complex scenarios.
- Uses
@Autowired
private PlatformTransactionManager transactionManager;
public void doInTransaction() {
TransactionTemplate template = new TransactionTemplate(transactionManager);
template.execute(status -> {
// code within transaction
return null;
});
}
Spring supports declarative transaction management, which simplifies code and improves readability. It is important to properly configure DataSource and TransactionManager in the application configuration.