本项目用到的组件技术可以参考我上一篇博客,来学习。
项目需求:
客户端:针对普通用户,用户登录,用户退出,菜品订购,我的订单
后台管理系统:针对管理员,管理员登录,管理员退出,添加菜品,查询菜品,修改菜品,订单处理,添加用户,查询用户,删除用户
微服务架构思路:
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix