https://github.com/wayshall/onetwo-tcc
一个简单的tcc事务框架
https://github.com/wayshall/onetwo-tcc
Last synced: 5 months ago
JSON representation
一个简单的tcc事务框架
- Host: GitHub
- URL: https://github.com/wayshall/onetwo-tcc
- Owner: wayshall
- Created: 2019-10-22T10:13:51.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-05T02:44:04.000Z (over 1 year ago)
- Last Synced: 2025-05-07T11:51:41.292Z (about 1 year ago)
- Language: Java
- Size: 146 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# onetwo-tcc
一个简单的tcc事务框架
## 要求
- JDK 1.8+
- Spring 4.0+
- RocketMQ 3.x +
- Spring Boot 1.4.x, 1.5.x
## maven
**当前snapshot版本:0.5.1-SNAPSHOT**
若使用snapshot版本,请添加snapshotRepository仓储:
```xml
oss
https://oss.sonatype.org/content/repositories/snapshots/
true
```
其它依赖可以直接参考sample项目的pom.xml配置
## 使用
### 启用注解
要使用tcc功能,首先要使用 @EnableTCC 注解,激活加载tcc相关组件
```Java
@SpringBootApplication
@EnableTCC
public class TccServiceApplication {
public static void main(String[] args) {
SpringApplication.run(TccOrderServiceApplication.class, args);
}
}
```
### tcc事务注解使用
0、使用@TCCService注解标记服务类为Tcc服务类
```Java
@Service
@TCCService
public class TccService {
}
```
1、标记主事务方法:
```Java
@Service
@TCCService
public class TccService {
@TCCTransactional(globalized=true)
public void tccMain() {
}
}
```
2、标记分支事务方法:
```java
@Service
@TCCService
public class BranchTccService {
@TCCTransactional(globalized=false, confirmMethod="确认方法名称", cancelMethod="取消方法名称")
public void tccBranch() {
}
}
```
**注意 **
- 分支事务方法不需要加事务注解,tcc框架内部已自动包装了事务
3、confirm和cancel方法签名必须与try方法一致,且在同一个类
```Java
@Service
@TCCService
public class BranchTccService {
@TCCTransactional(globalized=false, confirmMethod="confirm", cancelMethod="cancel")
public void try(Request request) {
}
public void confirm(Request request) {
}
public void cancel(Request request) {
}
}
```