Spring中使用事务的常用几种方式

Spring中使用事务的常用几种方式

  • 1. 使用TransactionTemplate手动提交事务
    • spring配置
    • 业务代码
  • 2. 使用TransactionProxyFactoryBean代理提交事务
    • spring配置
    • 业务代码
    • 功能代码
  • 3. 使用AOP配置事务(常用)
    • spring配置
    • 业务代码
    • 功能代码
  • 4. 注解方式(常用)
    • spring配置
    • 业务代码
    • 功能代码
  • 案例代码

1. 使用TransactionTemplate手动提交事务

spring配置

    
        
        
        
        
    
    
    
    
        
        
    

    
    
        
    

业务代码

    @Autowired
    private TransactionTemplate transactionTemplate;

    @Override
    public void xxx(...) {

        transactionTemplate.execute(new TransactionCallbackWithoutResult() {

            @Override
            protected void doInTransactionWithoutResult(TransactionStatus arg0) {
                //TODO 实现业务
            }
        });
    }

2. 使用TransactionProxyFactoryBean代理提交事务

spring配置

    
        
        
        
        
    
    
    
    
        
        
    

    
    
        
        
        
        
        
        
            
                
                PROPAGATION_REQUIRED
            
        
    

业务代码

    @Override
    public void xxx(...) {
        //TODO 实现业务
    }

功能代码

    //使用代理
    @Resource(name = "accountServiceProxy")
    private AccountService accountService;

3. 使用AOP配置事务(常用)

spring配置

    
        
        
        
        
    
    
    
    
        
        
    

    
    
        
            
            
            
        
    

    
    
        
        
        
        

        
        
        
        
    


    
    

业务代码

    @Override
    public void xxx(...) {
        //TODO 实现业务
    }

功能代码

	@Autowired
	private AccountService accountService;

4. 注解方式(常用)

spring配置

    
        
        
        
        
    
    
    
    
        
        
    

	
    
	
	

业务代码

@Transactional(propagation = Propagation.REQUIRED)
public class XxxServiceImpl implements XxxService {

    @Autowired
    private XxxDao xxxDao;

    @Override
    public void xxx(...) {
        //TODO 实现业务
    }

}

功能代码

	@Autowired
	private XxxService xxxtService;

案例代码

gitee地址

你可能感兴趣的:(Spring技术,事务)