本项目用到的组件技术可以参考我上一篇博客,来学习。
项目需求:
客户端:针对普通用户,用户登录,用户退出,菜品订购,我的订单
后台管理系统:针对管理员,管理员登录,管理员退出,添加菜品,查询菜品,修改菜品,订单处理,添加用户,查询用户,删除用户

微服务架构思路:
account提供账户服务:用户和管理的登录退出
menu 提供菜品服务:添加,删除,修改,查询
order 提供订单服务:添加订单,查询订单,删除订单,处理订单
user 提供用户服务: 添加用户,查询用户,删除用户
分离出一个服务消费者,调用以上四个服务提供者,。其包含了客户端的前端页面和后台接口,后台管理系统的前端界面和后台借口。用户、管理员直接访问的资源都保存在服务消费者中,服务消费者根据具体的四个服务提供者的业务逻辑,通过feign和Ribbon和Eureka实现负载均衡。其实在本项目中没有过多的体现。电脑实在耗不动,就不加更多的服务搭集群测试了,这些都是写个注解就好了,没啥实货。

实操步骤:

第一步:创建父工程:
(1)创建父工程ordersystem-master。
(2)修改pom.xml,添加依赖。、
我讲一下需要添加哪些内容的依赖
1.父依赖:引入SpringBoot依赖
<groupId>org.springframework.boot</groupId>
<artfactId>spring-boot-starter-parent</artfactId>
<version>2.0.7.RELEASE</version>
2.依赖;
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.依赖管理:使用SpringCloud依赖,guanliCpringCloud生态各个组件
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步:添加注册中心Rureka。
(1)添加子工程Module。registrycenter。
(2)修改pom.xml
1.引入eureka依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
(3)添加配置文件application.yml
1.配置端口:
server:
port: 8761
2.配置Rereka信息:
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka/ (4)添加启动类。
并且在启动类上面添加@SpringBootApplication,@EnableEurekaServer。
启动后在http://localhost:8761/eureka/可看到Eureka管理界面,目前没有服务注册进来,故没有服务。接下来新增menu服务。 第三步(这里我就写一个menu菜单管理即可,其他微服务与menu一样,都是一个SpringBoot小项目):
(1)添加子工程Module。
(2) 修改pom.xm。
1.把该服务注册进rureka中,需要导入client依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
2.本项目利用Mybatis框架作为ORM,数据库使用Mysql。
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
3.添加配置中心依赖,下一步讲这个配置中心,先导入依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
(3)添加配置文件bootstrap.yml.
这个配置文件主要是用配置中心,每次启动的时候会从Git仓库下下载读取。
pring:
cloud:
config:
name: menu #对应的配置文件名称
label: master #git仓库分支名
discovery:
enabled: true
serviceId: configserver #连接的配置中心名称
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
(4)开发人员在本地Git库编写menu.yml然后可以上传到Git仓库。
(1)首先是微服务端口号
server:
port: 8020
(2)微服务名字,数据库,数据池。Eureka。
spring:
application:
name: menu
datasource:
name: orderingsystem
url: jdbc:mysql://localhost:3306/orderingsystem?useUnicode=true&characterEncoding=UTF-8
username: root
password: root
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.southwind.entity
(5)接下来就是SpringBoot都学过的MVC开发模式了;这个大家都会了,我就不多说了。 第四步:添加配置中心SpringCloudConfig
(1)添加子工程Module。configserver.
(2)修改pom.xml文件。
1.引入config依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.引入EurekaClient的依赖(前面都说了)。
(3)添加配置文件。application.yml。
1.配置端口,服务名字,Eureka信息。(前面都说了)
2.config信息。利用Git统一管理。
spring:
application:
config:
server:
git:
uri: https://github.com/lele-Chang/order.git #git仓库地址
# searchPaths: config #仓库路径,在那个路径下就写那个,第一层就不写了。
username: lele-Chang #git仓库用户名
password: ******... #git仓库密码
label: master #仓库的分支
3.本地建立Git库,编写所有微服务的配置文件,利用Git上传到Git库。 第五步:配置客户端
(1)创建子工程Module。clientfeign。
(2)修改pom.xml文件
1.添加Eurekaclient,配置中心的依赖。这些前面都配过了。
2.集成feign,以及thymeleaf(这其实就是服务消费者了,我们直接利用html做前台界面)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
(3)添加bootstrap.yml文件读取Git统一管理的配置文件。
(4)本地Git添加clientfeign.yml文件。
1.配置端口,服务名,Rureka.
2.配置thymeleaf.
spring:
thymeleaf:
prefix: classpath:/static/
suffix: .html
(5)利用feign统一调用各大服务接口。
1.建一个Feign的文件夹,在新建MenuFegin接口。
在接口上@FeignClient(value=''微服务定义的名字''),这样就可以通过Eureka找到该服务。使用该微服务所定义的接口了。
2.但是需要建立实体类,类作为对象调用。
(6)建立启动类。
@SpringBootApplication,@EnableFeignClients,@ServletComponentScan (7)至于前台使用的是layui框架,thymeleaf.
这个我就不演示了,有官网可以学习了解。

具体代码可到我的Git上下载:https://github.com/lele-Chang/order.git

SpringCloud做的微服务项目--外卖订餐系统的更多相关文章

  1. SpringCloud:搭建微服务项目框架 microservicecloud

    1.搭建整体父工程 microservicecloud 新建父工程microservicecloud,切记是Packageing是pom模式 主要是定义POM文件,将后续各个子模块公用的jar包等统一 ...

  2. SpringCloud(1)---基于RestTemplate微服务项目案例

    基于RestTemplate微服务项目 在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上 ...

  3. 毕业设计代做,各种系统微服务项目ssm项目,员工管理系统,微信小程序,购物商城,二手商城系统,销售系统,等等

    毕业设计代做,各种系统,微服务项目,ssm项目 小程序,商城等,期末作业等都可以,价格好说,长期接单, 有项目说明书,软件介绍相关文档,答辩的时候包过,知识点对接好,给你讲解等, 毕业设计代做,各种系 ...

  4. springboot+springcloud微服务项目全套资料(笔记+源码+代码)

    最近好几天没有写博客了,由于时间的太忙了,项目要做.各种资格证要考试,实在没有时间写了,今天正好赶上有闲暇的一刻,应许多的爱好者的要求发一份微服务项目的资料,此资料十分完整,且是最新的.希望各位读者能 ...

  5. SpringCloud微服务项目实战 - API网关Gateway详解实现

    前面讲过zuul的网关实现,那为什么今天又要讲Spring Cloud Gateway呢?原因很简单.就是Spring Cloud已经放弃Netflix Zuul了.现在Spring Cloud中引用 ...

  6. 十一、Docker搭建部署SpringCloud微服务项目Demo

    环境介绍 技术选型:SpringCloud&SpringCloud Alibaba&Docker 微服务模块划分: 员工模块:ems-employees 部门模块:ems-depart ...

  7. 【spring colud】spring cloud微服务项目搭建【spring boot2.0】

    spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDE ...

  8. 一. SpringCloud简介与微服务架构

    1. 微服务架构 1.1 微服务架构理解 微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦.你可以将其看作是在 ...

  9. java框架之SpringCloud(2)-Rest微服务案例

    在上一章节已经对微服务与 SpringCloud 做了介绍,为方便后面学习,下面以 Dept 部门模块为例做一个微服务通用 Demo —— Consumer 消费者(Client) 通过 REST 调 ...

  10. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

随机推荐

  1. jsPlumb导航器

    开源项目地址:https://gitee.com/easyxaf/jsplumb-navigator 前言 jsPlumb可用于连接DOM元素,它不依赖框架,所以与主流框架都可以无缝的集成.但比较遗憾 ...

  2. 在linux上安装redis并设置权限

    redis是使用 c 开发,启动文件是二进制的看不到什么有用的信息,安装最新版本可以在https://redis.io/download 官网上查看,安装非常简单: mkdir /usr/redis, ...

  3. [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化

    [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化 问题 Col标签不对齐 首先直接放解决办法 在 vsCode se ...

  4. 摆脱鼠标系列 - vscode 花括号 开始结束 间的跳转 Ctrl + Shift + \

    为什么 摆脱鼠标系列 - vscode 花括号 开始结束 间的跳转 Ctrl + Shift + \ 快速移动到下一个 注意有时候输入法会有问题 因为 Ctrl + Shift 是切换输入法,所以回头 ...

  5. 基于C语言的串口AT指令发送实例解析

    一 知识点 1 AI指令后面一定要加 \n\r 2 注意AT指令里面待双引号的这种,要使用斜杠隔开. 二 源码: void Set_Pdu_Mode(void) { u8 a = 1; if(atKe ...

  6. 基于ads1292心电数据存储和状态显示

    一 前记 ads1292芯片在专业的心电采集这块应用十分广泛.随着医疗可穿戴的发展,便携式心电测量这块前景十分广阔.基于现在的几个项目,团队在这里花费了不少精力,借此机会把这个方向打造成团队的特色之一 ...

  7. day04-3服务器推送新闻

    多用户即时通讯系统04 4.编码实现03 4.7功能实现-服务器推送消息功能实现 4.7.1思路分析 服务器推送新闻,本质其实就是群发消息 在服务器启动一个独立线程,专门负责推送新闻 该线程通过管理线 ...

  8. 3DCAT亮相WAIC 2022浦东分会场——元宇宙博览会暨数字光影大会

    以"智联世界 元生无界"为主题的2022世界人工智能大会于9月3日下午圆满闭幕.与此同时,由上海市多媒体行业协会.深圳市数字创意与多媒体行业协会主办,上海天盛会展有限公司承办的WA ...

  9. uni之this作用域

    目录介绍 01.先看一个案例 02.看一下解决方案 01.先看一个案例 代码如下所示 发现了点击按钮1可以更新title内容,但是点击按钮2却无法更新title内容.这个究竟是为什么呢? <te ...

  10. ARouter路由解析

    目录介绍 01.原生跳转实现 02.实现组件跳转方式 2.1 传统跳转方式 2.2 为何需要路由 03.ARouter配置与优势 04.跨进程组件通信 4.1 URLScheme 4.2 AIDL 4 ...