项目集介绍
SpringbootSeries父工程
此模块中只有一个pom.xml文件,是后面所有模块的父模块,主要功能有两个:子模块管理和依赖管理。
类别 | 必选 | 可选 |
---|---|---|
基础框架 | jdk 17+ spring-boot-starter 3.2.4 spring-boot-starter-web 3.2.4 | spring-cloud 2023.0.1 spring-cloud-alibaba 2023.0.1.0 |
数据库 | mybatis-plus-spring-boot3-starter 3.5.6 druid-spring-boot-starter 1.2.22 mysql-connector-java 8.0.33 | |
工具包 | cn.hutool 5.8.27 org.projectlombok 1.18.30 | org.mapstruct 1.5.5.Final mapstruct-processor 1.5.5.Final framework-commons 1.0-SNAPSHOT |
日志 | slf4j 2.0.12 logback 1.4.14 | |
测试 | spring-boot-starter-test 3.2.4 springdoc-openapi-starter-webmvc-ui 2.4.0 spring-boot-starter-actuator 3.2.4 : runtime | spring-boot-devtools 3.2.4 |
Framework子工程组
这个工程组中一共包含两个子模块,framework-commons可以单独引用, 其中framework-persistence
依赖了framework-commons
。
framework-commons
:springboot框架底层功能封装;framework-commons
:mybatis数据库操作相关底层功能封装;
SpringBoot子工程组
表格中,启动方法列中run jar
表示运行模块下相应的SpringbootXxxxxApplication.java
文件,另外sh startup.sh -m standalone
是Nacos启动命令
功能说明 | 涉及模块和软件 | 启动方法 |
---|---|---|
Springboot基础工程 | springboot-base:18080 | run jar |
Springbootweb基础工程 | springboot-web: 18081 | run jar |
Springboot常用功能 | springboot-common-config:17000 | run jar |
Springboot集成mybatisplus | springboot-mybatisplus:18086 | run jar |
Springboot集成redis | springboot-redis:18087 | consul agent -dev brew services start redis run jar |
Springboot集成Kafka | springboot-kafka:15002 | consul agent -dev brew services start zookeeper brew services start kafka run jar |
发布Springboot应用服务Docker镜像 | springboot-docker:19508 | sh startup.sh -m standalone mvn -clear package docker build -t springbootapp:lecture . docker run -it -d springbootapp:lecture /bin/bash docker logs containerId |
SpringCloud子工程组
表格中,启动方法列中run jar
表示运行模块下相应的SpringbootXxxxxApplication.java
文件
功能说明 | 涉及模块和软件 | 启动方法 |
---|---|---|
Consul 注册中心 | springcloud-consul-server:18093 | consul agent -dev run jar |
Consul配置中心 | springcloud-consul-config:18087 | consul agent -dev run jar |
Netflix-ribbon+Consul负载均衡 | springcloud-consul-server :18093, 18094 provider服务提供者 springcloud-consul-client :18095 consumer服务消费者 | consul agent -dev run springcloud-consul-server run springcloud-consul-client |
Gateway+Consul服务网关 | springcloud-api-gateway:19000,服务网关 springcloud-gateway-server:18096,被代理的应用 | Consul agent -dev run springcloud-api-gateway run springcloud-gateway-server |
Enreka注册中心 | springcloud-eureka-server:18082,18083 springcloud-eureka-client:18084 springcloud-eureka-server-with-security:18085 | run springcloud-eureka-server run springcloud-eureka-client |
Netflix-ribbon+Enreka负载均衡 | springcloud-eureka-server :18082,注册中心 springcloud-ribbon-server:18091, 18092, provider服务提供者 springcloud-ribbon-client:18090, consumer服务消费者 | run springcloud-eureka-server run springcloud-ribbon-server run springcloud-ribbon-client |
SpringbootAdmin服务监控 | springcloud-admin-server:19888,图形化配置中心 springcloud-client-server:19889,被管理的测试应用 | consul agent -dev run springcloud-gateway-server run springcloud-client-server |
Alibaba SpringCloud子工程组
表格中,启动方法列中run jar
表示运行模块下相应的SpringbootXxxxxApplication.java
文件
功能说明 | 涉及模块和软件 | 启动方法 |
---|---|---|
Nacos配置中心 | alibaba-nacos-config:19500 | sh startup.sh -m standalone run jar |
Nacos注册中心 | alibaba-nacos-client:19503 | sh startup.sh -m standalone run jar |
Nacos+OpenFeign负载均衡 | alibaba-nacos-server:19501,19502 provide服务端 springboot-openFeign-client : 19506, consumer客户端 | sh startup.sh -m standalone run alibaba-nacos-server run springboot-openFeign-client |
Nacos+Sentinel服务治理 | alibaba-sentinel-client:19504 alibaba-sentinel-server:19505 | sh startup.sh -m standalone sh sentinel run alibaba-sentinel-server run alibaba-sentinel-client |
Nacos+Sentinel+OpenFeign服务降级 | alibaba-sentinel-openFeign-client:19508 | sh startup.sh -m standalone sh sentinel run jar |
项目集运行和测试方法
java jdk最低版本17
因采用了父子结构,所以在本地运行相应模块的SpringbootXxxxApplication.java启动类之前,首先:
安装Maven基础模块
- 先在
springbootSeries
模块(即最外层的父工程)中执行mvn install
,把pom.xml缓存到本地maven缓存库中; - 再依次在
framework-commons
和framework-persistence
模块中执行mvn install
,缓存通用jar包到本地maven缓存库中;
如果不需要修改上述三个模块的源码,则在本地只需执行一次
mvn install
命令即可,需要注意的是以上三个模块的执行顺序不能弄错,先springbootSeries–>framework-commons–>framework-persistence
三方插件服务启动
某些模块需要其它三方插件来辅助运行,现把启动方式罗列在些,以方便查找:
# 启动Nacos,访问地址:http://localhost:8848/nacos
sh startup.sh -m standalone
# 启动Consul,访问地址:http://127.0.0.1:8500/
consul agent -dev
# 启动Redis
redis server
# 启动sentinel dashboard,访问地址 http://localhost:9999
java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar
启动Springboot服务
一般只需要执行位于`com.korgs.SpringbootXxxxxApplication.java’路径下的SpringbootApplication启动类,即可运行相应模块服务。
测试Springboot服务
在这里笔者建议采用 Swagger3 来进行测试,因为 Swagger3 服务已事先集成到了framework-commons
模块中,同时为了方便,在每个模块的SpringbootXxxxxApplication.
java类中都定义了一个名为 http://localhost:18080/helloworld
的测试Restful接口。Swagger-UI访问地址如下:
- http://localhost:18080/swagger-ui.html
18080是应用开放的端口,通过
application.properties
文件的server.port=18080
属性定义
如果涉及多个springboot配置文件的模块,在Idea中可以在启动配置对话框中添加
Springboot
,然后在配置界面勾选程序实参
,最后配置–spring.profiles.active=serverBackup,以指定不同springboot的profile配置文件