springCloud分布式事务实战(七)改造合服务BlockMicroService支持分布式事务
2018-11-01 23:23
1121 查看
在BlockMicroService 工程 中加入
(1)加入jar
<!-- springCloud 事务 关键点1 --> <dependency> <groupId>com.codingapi</groupId> <artifactId>transaction-springcloud</artifactId> <version>${lcn.last.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.codingapi</groupId> <artifactId>tx-plugins-db</artifactId> <version>${lcn.last.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
(2) 修改配置文件application.properties
连接 事务服务器 加上 关键点2 tm.manager.url=http://127.0.0.1:7000/tx/manager/
(3)添加2个代码文件
1 http请求服务TxManagerHttpRequestServiceImpl.java package com.jh.service.impl; import com.codingapi.tx.netty.service.TxManagerHttpRequestService; import com.lorne.core.framework.utils.http.HttpUtils; import org.springframework.stereotype.Service; /** * http请求 //关键点3 * */ @Service public class TxManagerHttpRequestServiceImpl implements TxManagerHttpRequestService{ @Override public String httpGet(String url) { System.out.println("httpGet-start"); String res = HttpUtils.get(url); System.out.println("httpGet-end"); return res; } @Override public String httpPost(String url, String params) { System.out.println("httpPost-start"); String res = HttpUtils.post(url,params); System.out.println("httpPost-end"); return res; } }
2 获取url TxManagerTxUrlServiceImpl.java
package com.jh.service.impl; import com.codingapi.tx.config.service.TxManagerTxUrlService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** * 获取url */ @Service public class TxManagerTxUrlServiceImpl implements TxManagerTxUrlService{ @Value("${tm.manager.url}") private String url; @Override public String getTxUrl() { System.out.println("load tm.manager.url "); return url; } }
(4) 改造整合服务
@TxTransaction(isStart=true) //关键 4 @Override @Transactional public int saveBlockTheme(Block block, Theme theme) { int rs1 = blockDao.saveBlock("jwg1", "111");// 3 保存1 int rs2 = themeClient.saveTheme("jwg2", "111", 1);// 4 保存2 int v = 100/0; //故障 return rs1 + rs2; }
相关文章推荐
- springCloud分布式事务实战(九)改造ThemeMicroService 支持分布式事务
- (7)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 利用Polly+AOP+依赖注入封装的降级框架
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- 微服务(Microservice)那点事
- AWSomeDay 中体会的Micro Service 微服务
- 微服务(Microservice)那点事
- 微服务(Microservice)那点事
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- MicroService4Net快速搭建微服务
- SQL SERVER 2005本机Web服务支持(实战篇)
- Liferay开发实战(2):Service Builder生成持久化层,及开发服务层
- (9)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- JWT算法
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
- MicroService 微服务架构模式简介
- openstack安装(liberty)--安装块存储服务(Block Storage service/cinder)
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法