JAVA全系列 教程
3762个小节阅读:7092.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
xxxxxxxxxx
server:
port: 9090
spring:
application:
name: tx-msg-stock
datasource:
url: jdbc:mysql://192.168.66.100:3306/tx-msg-order?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&failOverReadOnly=false&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
################ RocketMQ 配置 ##########
rocketmq:
name-server: 192.168.66.100:9876
producer:
group: order-group
xxxxxxxxxx
/**
* 订单微服务启动成功
*/
@Slf4j
@MapperScan("com.itbaizhan.order.mapper")
@SpringBootApplication
public class OrderMain9090 {
public static void main(String[] args) {
SpringApplication.run(OrderMain9090.class,args);
log.info("************* 订单微服务启动成功 *******");
}
}
xxxxxxxxxx
package com.itbaizhan.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.Arrays;
import java.util.List;
public class CodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://192.168.66.102:3306/tx-msg-order", "root", "123456")
.globalConfig(builder -> {
builder.author("itbaizhan") // 设置作者
.commentDate("MM-dd") // 注释日期格式
.outputDir(System.getProperty("user.dir") +"/rocketmq-msg/orders"+ "/src/main/java/")
.fileOverride(); //覆盖文件
})
// 包配置
.packageConfig(builder -> {
builder.parent("com.itbaizhan.orders") // 包名前缀
.entity("entity") //实体类包名
.mapper("mapper") //mapper接口包名
.service("service"); //service包名
})
.strategyConfig(builder -> {
// 设置需要生成的表名
builder.addInclude(Arrays.asList("orders","tx_log"))
// 开始实体类配置
.entityBuilder()
// 开启lombok模型
.enableLombok()
//表名下划线转驼峰
.naming(NamingStrategy.underline_to_camel)
//列名下划线转驼峰
.columnNaming(NamingStrategy.underline_to_camel);
})
.execute();
}
}
在项目的com.itbaizhan.orders.tx包下创建TxMessage类,主要用来封装实现分布式事务时,在订单微服务、RocketMQ消息中间件和库存微服务之间传递的全局事务消息,项目中会通过事务消息实现幂等。
xxxxxxxxxx
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TxMessage implements Serializable {
private static final long serialVersionUID = -4704980150056885074L;
/**
* 商品id
*/
private Long productId;
/**
* 商品购买数量
*/
private Integer payCount;
/**
* 全局事务编号
*/
private String txNo;
}