1. 依赖工具

  • Maven

  • Git

  • JDK

  • MySQL

  • IntelliJ IDEA

2. 源码拉取

从官方仓库 https://github.com/changmingxie/tcc-transaction.git Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。

使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码。拉取完成后,Maven 会下载依赖包,可能会花费一些时间,耐心等待下。

本文基于 master-1.2.x 分支。

3. 初始化数据库

官方提供了两个 Demo 项目例子:

  • tcc-transaction-dubbo-sample

  • tcc-transaction-http-sample

考虑到不是所有所有同学都使用过 Dubbo 服务化框架,我们以 tcc-transaction-http-sample 项为例子。

打开 tcc-transaction-http-sample/src/main/dbscripts 目录,有四个 SQL 脚本文件:

  • create_db_cap.sql :tcc-transaction-http-capital 项目数据库初始化脚本。

  • create_db_ord.sql :tcc-transaction-http-order 项目数据库初始化脚本。

  • create_db_red.sql :tcc-transaction-http-redpacket 项目数据库初始化脚本。

  • create_db_tcc.sql :tcc-transaction 底层数据库初始化脚本。

笔者使用 Navicat 进行数据库脚本执行。使用方式为:Navicat 菜单 Connection -> Execute SQL File,选择脚本文件,逐个执行。

目前数据库脚本未使用 USE 语句选择对应数据库,每个脚本都需要进行添加。以 create_db_cap.sql 举例子:

CREATE DATABASE `tcc_cap` /*!40100 DEFAULT CHARACTER SET utf8 */;
-- 新增 USE
USE `tcc_cap`;

4. 启动 capital 项目

  1. 修改项目下 jdbc.properties 文件,填写成你的数据库地址

  2. 使用 IDEA 配置 Tomcat 进行启动。这里要注意下:

    // appcontext-service-provider.xml
    <bean id="httpServer"
        class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">

      <property name="contexts">
          <util:map>
              <entry key="/remoting/CapitalTradeOrderService" value-ref="capitalTradeOrderServiceExporter"/>
              <entry key="/remoting/CapitalAccountService" value-ref="capitalAccountServiceExporter"/>
          </util:map>
      </property>
      <property name="port" value="8081"/>
    </bean>
  • 默认开启 8081 端口提供接口服务。所以配置 Tomcat 的端口不能再使用 8081,避免冲突。例如,笔者使用 18081。

访问 http://127.0.0.1:18081/,看到 "hello tcc transacton http sample capital",代表项目启动完成。18081 为你填写的 Tomcat 端口

5. 启动 redpacket 项目

同 tcc-transaction-http-capital 项目。

6. 启动 order 项目

  1. 修改项目下 jdbc.properties 文件,填写成你的数据库地址

  2. 使用 IDEA 配置 Tomcat 进行启动。

  3. 访问 http://127.0.0.1:8080/,看到 "sample 说明...",代表项目启动完成。8080 为你填写的 Tomcat 端口

  4. 点击 [商品列表链接] -> [购买] -> [支付],如果看到 "支付成功" 或者 "支付失败",恭喜你

  5. 你已经成功搭建完你的调试环境。愉快的开始玩耍把。

  6. 666. 彩蛋

  7. 调试环境搭建是阅读源码的第一步,如果你碰到无法搭建成功的情况,请给笔者公众号( 芋道源码 )留言。笔者会给你 1:1 的高级( 搞基 )支持。

  8. 另外这是一个系列文,本系列更新 TCC-Transaction ,下一个系列更新 ByteTCC 。嗨皮不?!

  9. 道友,赶紧上车,分享一波朋友圈!

©著作权归作者所有:来自51CTO博客作者mb5ff80520dfa04的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 给Python初学者的最好练手项目,进来看就对了!
  2. 小奎因的 PYTHON 项目部署与调度直播分享来了
  3. 项目里文件名永远不要用中文!永远不要!
  4. 5、Shell命令脚本
  5. P2P网贷信用评分项目分享(一)
  6. 同学,你这简历上没项目啊!
  7. 大学历经几十个落地项目,小鹿教科书式经验总结!
  8. 脚本实现Oracle19c_pdb单实例自动安装部署

随机推荐

  1. 怎样创建你的第一个React Native App[每
  2. Vue3 对 Web 应用性能的改进[每日前端夜
  3. Linux性能优化(四)——BCC性能监控工具
  4. Vue 3 中令人兴奋的新功能[每日前端夜话0
  5. 用 MelonJS 开发一个游戏[每日前端夜话0x
  6. Java面试题全集(8)
  7. Linux性能优化(三)——sysstat性能监控工具
  8. 我们应该为 JavaScript 重新命名吗?[每日
  9. React17 系统精讲 结合TS打造旅游电商平
  10. 完全搞懂 Javascript 中的... [每日前端