在Spring Boot中,实现事务有以下几种方法:
基于注解的方法:使用@Transactional注解在需要事务管理的方法上,Spring Boot会自动开启事务、提交事务或回滚事务。@Servicepublic class UserService { @Autowired private UserRepository userRepository; @Transactional public void saveUser(User user) { userRepository.save(user); }}声明式方法:使用@EnableTransactionManagement注解启用事务管理,并在配置文件中配置事务管理器。@Configuration@EnableTransactionManagementpublic class TransactionConfig { @Bean public DataSourceTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); }}@Servicepublic class UserService { @Autowired private UserRepository userRepository; public void saveUser(User user) { userRepository.save(user); }}编程式方法:使用TransactionTemplate类手动控制事务的开始、提交和回滚。@Servicepublic class UserService { @Autowired private TransactionTemplate transactionTemplate; @Autowired private UserRepository userRepository; public void saveUser(User user) { transactionTemplate.execute(new TransactionCallbackWithoutResult() { protected void doInTransactionWithoutResult(TransactionStatus status) { userRepository.save(user); } }); }}以上是常用的三种实现事务的方法,根据具体情况选择适合的方法。