2.微服务项目实战---环境搭建,实现电商中商品、订单、用户

2023-10-30

使用的电商项目中的商品、订单、用户为案例进行讲解。

2.1 案例准备

2.1.1 技术选型

maven 3.3.9
数据库: MySQL 5.7
持久层 : SpingData Jpa
其他 : SpringCloud Alibaba 技术栈

2.1.2 模块设计

springcloud-alibaba 父工程
shop-common 公共模块【实体类】
shop-user 用户微服务 【端口 : 807x
shop-product 商品微服务 【端口 : 808x
shop-order 订单微服务 【端口 : 809x

2.1.3 微服务调用

在微服务架构中,最常见的场景就是微服务之间的相互调用。我们以电商系统中常见的 用户下单
例来演示微服务的调用:客户向订单微服务发起一个下单的请求,在进行保存订单之前需要调用商品微服务查询商品的信息。
我们一般把服务的主动调用方称为 服务消费者 ,把服务的被调用方称为 服务提供者

 

在这种场景下,订单微服务就是一个服务消费者, 商品微服务就是一个服务提供者。

2.2 创建父工程

创建一个 maven 工程,然后在 pom.xml 文件中添加下面内容

 

版本对应:

 

2.3 创建基础模块

1 创建 shop - common 模块,在 pom.xml 中添加依赖
2 创建实体类

2.4 创建用户微服务

步骤 :
1 创建模块 导入依赖
2 创建 SpringBoot 主类
3 加入配置文件
4 创建必要的接口和实现类 (controller service dao)
新建一个 shop - user 模块,然后进行下面操作
1 创建 pom.xml

 

2 编写主类

3 创建配置文件

 

 

2.5 创建商品微服务
1 创建一个名为 shop_product 的模块,并添加 springboot 依赖

 

2 创建工程的主类

 

3 创建配置文件 application.yml

 

4 创建 ProductDao 接口 p

 

5 创建 ProductService 接口和实现类

 

6 创建 Controller

 

7 启动工程,等到数据库表创建完毕之后,加入测试数据
8 通过浏览器访问服务

2.6 创建订单微服务

1 创建一个名为 shop - order 的模块 , 并添加 springboot 依赖

 

2 创建工程的主类
3 创建配置文件 application.yml

4 创建OrderDao接口 

 

5 创建 OrderService 接口和实现类

 

6 创建 RestTemplate

 

7 创建 Controller

 

启动工程 , 通过浏览器访问服务进行测试

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.微服务项目实战---环境搭建,实现电商中商品、订单、用户 的相关文章

  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • Apache Commons CLI:替代已弃用的 OptionBuilder?

    IntelliJ 显示此示例代码中不推荐使用 OptionBuilderhttp commons apache org proper commons cli usage html http commons apache org proper
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • Java 编码风格、局部变量与重复方法调用

    我更喜欢使用局部变量而不是多次调用同一方法 I prefer this Vehicle vehicle person getVehicle if vehicle instanceof Car Car car Car vehicle car

随机推荐

  • Android自定义view之View的测量过程全解析

    Android 应用层开发中绕不开自定义 View 这个话题 虽然现在 Github 上有形形色色的开源库供大家使用 但是作为一名开发者而言 虽然不提倡重复造轮子 但是轮子都是造出来的 碰到一些新鲜的 UI 效果时 如果现有的控件无法完成任
  • 【零基础学QT】第九章 窗口美化QSS的使用

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • 谈谈阿里与谷歌的Java开发规范

    无规矩不成方圆 编码规范就如同协议 有了Http TCP等各种协议 计算机之间才能有效地通信 同样的 有了一致的编码规范 程序员之间才能有效地合作 道理大家都懂 可现实中的我们 经常一边吐槽别人的代码 一边写着被吐槽的代码 究其根本 就是缺
  • 黑窗口DOS命令

    常用命令 操作 说明 盘符名称 盘符切换 E 回车 表示切换到E盘 dir 查看当前路径下的内容 cd目录 进入单级目录 cd itheima cd 回退到上一级目录 cd目录1 目录2 进入多级目录 cd itheima javaSE c
  • excel

    1 按照xxx以列化分 按照 分为一列 选中 数据 分列 分隔符号 下一步 其他 点击完成
  • 《算法图解》总结第 8 章:贪婪算法

    仅用于记录学习 欢迎批评指正 大神勿喷 系列文章目录 算法图解 总结第 1 章 二分查找 大O表示法 算法图解 总结第 2 章 数组和链表 选择排序 算法图解 总结第 3 章 while循环 递归 栈 算法图解 总结第 4 章 分而治之 快
  • 你不知道的vector和string方法?

    变长数组 但是不是链表 刚开始误以为是链表 因为链表当时学的时候就是说的相比数组可以变长 熟练应用这个容器的每一个方法 定义 vector
  • 腾讯云数据库团队:MySQL5.7 JSON实现简介

    作者介绍 吴双桥 腾讯云工程师 阅读原文 更多技术干货 请访问腾云阁 本文主要介绍在MySQL 5 7 7开始引入的非结构化数据类型JSON的特性以及具体的实现方式 包括存储方式 首先介绍为什么要引入JSON的原生数据类型的支持 接着介绍M
  • element-ui表格el-table的使用

    先给大家展示一下效果 Table 属性 属性名 说明 类型 可选值 默认值 data 显示的数据 array height Table 的高度 默认为自动高度 如果 height 为 number 类型 单位 px 如果 height 为
  • Python+win32gui将Excel文件xlsx批量快速转换xls(附完整代码+全注释)

    欢迎来到Python办公自动化专栏 Python处理办公问题 解放您的双手 博客主页 一晌小贪欢的博客主页 该系列文章专栏 Python办公自动化专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎各位佬关注 Python可
  • java 是面向对象编程的语言

    什么叫对象 public class Person private string name 什么叫类 Person是定义了一个人的java类 它是一类事物的统称 既然是人了 那就应该有名字吧 name就是person的一个属性 比如还有年龄
  • linux更改文件属性,Linux系统中修改与查看文件属性的基本方法

    chattrchattr 修改文件在Linux第二扩展文件系统 E2fs 上的特有属性 符号模式有 ASacdisu 几种格式 操作符 用来在文件已有属性的基础上增加选定的属性 用来去掉文件上的选定的属性 而 用来指定该文件的唯一属性 字符
  • hp n54l 网站服务器,HP N40L/HP N54L 刷DSM 4.1指南

    HP N40L 54L是HP自己的低端SERVER 用的是AMD TURION NEO II的CPU 从跑分来看 比SYNO家用或小企业系列里用的最新的D2700还好些 这个平时350米刀左右 但是有时候有DEAL的时候 250就可以拿下
  • java怎么编程安卓软件

    前言 今天逛论坛 看到了一位35岁的老程序员发的博文 看完内容后我又活了 35岁挑战华为社招 竟然凭实力在半个月内经历4轮面试后成功拿到了offer 不得不佩服这位大哥 35岁还这么强我们这些后辈还怕啥 当然重要的是这位程序员大佬最后总结的
  • 使用Python,dlib进行对象实时追踪

    这篇博客将介绍如何使用Python dlib执行对象跟踪 即通过dlib的相关跟踪器来实时跟踪视频流中的对象 与July的质心跟踪 Centroid Tracking 不同 dlib的对象跟踪算法可以利用从输入RGB图像收集的信息进行自我更
  • Java学习(超详细)三(循环结构+debug调试)

    目录 1 循环缘由与定义 1 1循环缘由 1 2循环定义 2 while循环结构 2 1 while循环语法 2 2 while循环实战 3 调试程序 3 1为什么需要程序调试 3 2什么是程序调试 3 3程序调试步骤 3 4程序 实战 调
  • Qt工程中如何添加.pri文件

    pri文件中的i 是包含 include 的首字母 类似于C C 中的头文件就是我们可以把 pro 文件内需要include的一部分或者多个工程相同的部分单独放到一个 pri 文件内 然后包含到工程的pro文件中 这种pri文件十分适合多子
  • Ubuntu 18.04 安装 PyCharm

    1 下载PyCharm安装包 1 进入PyCharm官网 选择Professional专业版 直接点击DOWNLOAD 如图1 2 进入跳转页面 出现提示框 点savefile 开始下载 3 下载完成后 安装包在Downloads文件夹下
  • Web安全公开课-XSS-前端基础

    这节课分两个部分讲 1 HTML概述 2 javascript概述 什么是HTML呢 HTML是种超文本标记语言 英文名字叫 HyperText Markup Language 超级文本标记语言是 种规范 也是一种标准 它通过标记符号来标
  • 2.微服务项目实战---环境搭建,实现电商中商品、订单、用户

    使用的电商项目中的商品 订单 用户为案例进行讲解 2 1 案例准备 2 1 1 技术选型 maven 3 3 9 数据库 MySQL 5 7 持久层 SpingData Jpa 其他 SpringCloud Alibaba 技术栈 2 1