seata-order-service2006模块
修改pom
<dependencies><dependency><groupId>com.test.example</groupId><artifactId>cloud-common</artifactId><version>${project.version}</version></dependency><!--nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--seata--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><exclusion><artifactId>seata-all</artifactId><groupId>io.seata</groupId></exclusion></exclusions></dependency><dependency><groupId>io.seata</groupId><artifactId>seata-all</artifactId><version>0.9.0</version></dependency><!--feign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--web-actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--mysql-druid--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>
添加application.yml
server:port: 2006spring:application:name: test-order-servicecloud:alibaba:seata:tx-service-group: fsp_tx_groupnacos:discovery:server-addr: localhost:8848datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/seata_personusername: rootpassword: 123456logging:level:io:seata: infomybatis:mapperLocations: classpath:mapper/*.xml
把seata-person-service2005 resouces下的file.conf和register.conf复制到当前resouces下
启动类
package com.test.example;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
public class SeataOrderMainApp2006 {public static void main(String[] args) {SpringApplication.run(SeataOrderMainApp2006.class,args);}
}
conf
package com.test.example.config;import com.alibaba.druid.pool.DruidDataSource;
import io.seata.rm.datasource.DataSourceProxy;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration
public class DataSourceProxyConfig {@Value("${mybatis.mapperLocations}")private String mapperLocations;@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druidDataSource(){return new DruidDataSource();}@Beanpublic DataSourceProxy dataSourceProxy(DataSource dataSource) {return new DataSourceProxy(dataSource);}@Beanpublic SqlSessionFactory sqlSessionFactoryBean(DataSourceProxy dataSourceProxy) throws Exception {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSourceProxy);sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));sqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory());return sqlSessionFactoryBean.getObject();}}
package com.test.example.config;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan({"com.test.example.dao"})
public class MyBatisConfig {
}
entity
package com.test.example.entity;import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Order {private Long id;private String name;@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createdTime;
}
dao
package com.test.example.dao;import com.test.example.entity.Order;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface OrderDao {void insertOrder(Order order);
}
service
package com.test.example.service;import com.test.example.entity.Order;public interface OrderService {void insertOrder(Order order);
}
serviceImpl
package com.test.example.service.impl;import com.test.example.dao.OrderDao;
import com.test.example.entity.Order;
import com.test.example.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
@Slf4j
public class OrderServiceImpl implements OrderService {@Autowiredprivate OrderDao orderDao;@Overridepublic void insertOrder(Order order) {orderDao.insertOrder(order);}
}
controller
package com.test.example.controller;import com.test.example.dto.CommonResult;
import com.test.example.entity.Order;
import com.test.example.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;@RestController
@Slf4j
@RequestMapping("/order")
public class OrderController {@Autowiredprivate OrderService orderService;@PostMapping("/insert")public CommonResult insertOrder(@RequestBody Order order){orderService.insertOrder(order);return new CommonResult(200,"订单创建成功",order);}
}
mapper
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.test.example.dao.OrderDao"><!-- <resultMap id="BaseResultMap" type="com.test.example.entity.Order"><id column="id" property="id" jdbcType="BIGINT"/><result column="insure_name" property="insureName" jdbcType="VARCHAR"/></resultMap>--><insert id="insertOrder" useGeneratedKeys="true" keyProperty="id">insert into t_order (name,created_time)values (#{name},#{createdTime})</insert></mapper
seata-order-service2006模块相关推荐
- Seata RPC 模块的重构之路
作者 | 张乘辉 来源|阿里巴巴云原生公众号 RPC 模块是我最初研究 Seata 源码开始的地方,因此我对 Seata 的 RPC 模块有过一些深刻研究,在我研究了一番后,发现 RPC 模块中的代码 ...
- SpringCloud系列之Nacos+Dubbo+Seata应用篇
SpringCloud系列之Nacos+Dubbo+Seata应用篇 原文链接:https://www.cnblogs.com/chinaWu/p/13671620.html ---------- 源 ...
- 【微服务入门】分布式事务详解及seata的使用
一文读懂分布式事务 微服务中的分布式事务问题 1 分布式事务介绍 1.1 什么是事务 1.2 本地事务 1.3 什么是分布式事务 1.3.0 假如没有分布式事务 1.4 分布式事务系统架构 1.4.1 ...
- 分布式事务(Seata) 四大模式详解
前言 在上一节中我们讲解了,关于分布式事务和seata的基本介绍和使用,感兴趣的小伙伴可以回顾一下<别再说你不知道分布式事务了!> 最后小农也说了,下期会带给大家关于Seata中关于sea ...
- seata TCC模式
.Seata 产品模块 .Seata 中有三⼤模块,分别是 TM.RM 和 TC.其中 TM 和 RM 是作为 Seata 的客户端与业务系统集 成在⼀起,TC 作为 Seata 的服务端独⽴部署. ...
- 【精品】seata综合示例:订单-库存-扣款
有关seata的安装,请参看博客:https://blog.csdn.net/lianghecai52171314/article/details/127330916 业务需求:下单-减库存-扣钱-改 ...
- MySQL中 Order By 和 Limit 的排序问题
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者 | 春卷要炸着吃 来源 | www.cnblogs. ...
- 多个mapper的事务回滚_揭秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
作者| 屹远(陈龙),蚂蚁金服分布式事务核心研发 . 导语 本文根据 8月11日 SOFA Meetup#3 广州站 <分布式事务 Seata 及其三种模式详解>主题分享整理,着重分享分布 ...
- mysql limit括号_采坑笔记——mysql的order by和limit排序问题
背景说明 今天写出一个十分弱智的bug,记录一下,提醒自己以后别这种犯错,不怕丢人哈~ 在写一个分页查询记录的sql时,要根据添加的时间逆序分页输出,之前的写法是酱紫 select record.a, ...
- 由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...
从用户的视角来感受一个开源项目的成长,是我们推出「开发者说」专栏的初衷,即在开发者进行开源项目选型时,提供更为立体的项目信息.专栏所有内容均来自作者原创/投稿,本文是「开发者说」的第9篇,作者郑扬勇, ...
最新文章
- Android studio 真机联调闪退
- 用Everything搜索指定的路径
- HashMap源码分析(搞懂HashMap看这个就够了)
- 计算机组成原理第二版第4章的答案,计算机组成原理第4章习题参考答案
- Android 8.0系统学习(19)--- SystemUI启动流程
- 长虹美菱:公司主要通过抖音短视频等平台进行直播带货
- python为什么那么多人点赞_python为何会火遍全球?它究竟是什么呢?阿里大佬告诉你答案...
- 系统如何实现权限控制
- 【语音处理】基于matlab GUI语音信号处理与滤波【含Matlab源码 1663期】
- 【测试工具】Selenium 自动化浏览器(Python 篇)
- CAPL学习之路-CAN有关的CAPL函数
- 向mysql中导入数据库文件
- magisk卸载内置软件_【教程篇】安卓手机卡刷Magisk(面具)获取Root教程
- 科大讯飞语音转写以及语音合成配置+遇到问题处理
- 【C语言】1-100求和;1-N求和
- 实用插件(七)视频播放插件——ckplayer
- [渝粤教育] 中国地质大学(武汉) 走近国粹 中国陶瓷 参考 资料
- 這是一位女生寫的 - 男生如何追求女生
- 股骨截骨php钢板,最新综述:股骨远端截骨治疗膝关节畸形进展(下)
- 一个字符等于多少磅?