前言
距离我搭建完个人开发框架并写完笔记也已经过去很长时间了,在这段时间内我学习了SpringCloud相关的知识,从这篇笔记开始把之前搭建的单体框架拆分成微服务框架,并希望在从中学到更多的知识,以及更多维度上的考虑;在此搭建的过程中,也希望各位大佬多多指点,多提建议,共同进步。
参考:
确定SpringCloud基础项目结构
关于微服务框架中都有什么服务模块,因为现在没什么业务场景,我就暂时按着学习到的服务模块来确定基础项目结构了。
ywh-cloud-core 主要业务代码
ywh-cloud-gateway 服务网关
ywh-cloud-auth 服务认证模块
ywh-cloud-common 服务公共模块
ywh-cloud-eureka 服务注册中心
网关服务我暂时使用的是Zuul来实现网关的,后续有可能改成SpringCloudGateway这个组件,毕竟是官方自己出的,用起来应该更如丝滑般柔顺吧。
最终的项目结构
关于如何在IDEA中创建多模块请参考我 springboot版本创建多模块项目,这里唯一的区别在于:在单体的SpringBoot多模块项目中,每个模块是有依赖关系的,最终只有一个启动类。
而在SpringCloud的多模块中,除了common模块,其他模块都有单独的启动类,并且没有依赖关系,每个微服务都是通过注册中心来发现对方,具体创建方式可以看我上方贴出来的方志朋老师的教程,或者我的SpringCloud练习实战。
创建完的项目结构如下图所示
创建完成后需要对一些文件进行修改
所有模块中pom.xml文件需要继承最外层的父pom.xml文件,默认创建后< parent >标签中是spring-boot-starter-parent,并且删除< relativePath/ >标签,否则mvn clean时会报错说找不到父pom文件
com.ywh
springcloud
0.0.1-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
复制代码最外层的pom.xml文件添加以下内容
pom
UTF-8
UTF-8
1.8
Greenwich.SR2
org.springframework.cloud
spring-cloud-dependencies