spring支持的事务
 似乎都是关于数据库的,可能也是我的水平问题,不知道其他的东西
 大概需要实现两个,一个commit,另一个是rollback
 事务是基于AOP实现的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
   | <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>
      <groupId>org.example</groupId>     <artifactId>springTransaction</artifactId>     <version>1.0-SNAPSHOT</version>
 
      <dependencies>         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context</artifactId>             <version>5.2.4.RELEASE</version>         </dependency>
          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-tx</artifactId>             <version>5.2.4.RELEASE</version>         </dependency>         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jdbc</artifactId>             <version>5.2.4.RELEASE</version>         </dependency>
          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-test</artifactId>             <version>5.2.4.RELEASE</version>         </dependency>
          <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>5.1.6</version>         </dependency>
          <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>4.12</version>         </dependency>
 
          <dependency>             <groupId>org.aspectj</groupId>             <artifactId>aspectjweaver</artifactId>             <version>1.8.13</version>         </dependency>
 
      </dependencies> </project>
   | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
   | package com.wsx.spring.Service;
  import com.wsx.spring.Account; import com.wsx.spring.Dao.IAccountDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional;
  @Service @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public class AccountService implements IAccountService {     @Autowired     private IAccountDao accountDao;
      public Account findAccountById(Integer accountId) {         return accountDao.findAccountById(accountId);     }
 
      @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)     public void transfer(String sourceName, String targetName, Float money) {         System.out.println("start transfer");                  Account source = accountDao.findAccountByName(sourceName);                  Account target = accountDao.findAccountByName(targetName);                  source.setMoney(source.getMoney() - money);                  target.setMoney(target.getMoney() + money);                  accountDao.updateAccount(source);
          int i = 1 / 0;
                   accountDao.updateAccount(target);     } }
   | 
 
         
        
    
    
        
    最后更新时间:
        
        这里可以写作者留言,标签和 hexo 中所有变量及辅助函数等均可调用,示例:
<%- page.permalink.replace(/index\.html$/, '') %>