专题模块项目功能说明和运行方法-02

项目集介绍

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基础模块

  1. 先在springbootSeries模块(即最外层的父工程)中执行mvn install,把pom.xml缓存到本地maven缓存库中;
  2. 再依次在framework-commonsframework-persistence模块中执行mvn install,缓存通用jar包到本地maven缓存库中;

如果不需要修改上述三个模块的源码,则在本地只需执行一次mvn install命令即可,需要注意的是以上三个模块的执行顺序不能弄错,先springbootSeries-->framework-commons-->framework-persistence

三方插件服务启动

某些模块需要其它三方插件来辅助运行,现把启动方式罗列在些,以方便查找:

shell 复制代码
# 启动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访问地址如下:

18080是应用开放的端口,通过application.properties文件的server.port=18080属性定义
如果涉及多个springboot配置文件的模块,在Idea中可以在启动配置对话框中添加Springboot,然后在配置界面勾选程序实参,最后配置--spring.profiles.active=serverBackup,以指定不同springboot的profile配置文件

相关推荐
荆州克莱1 分钟前
Vue3 源码解析(三):静态提升
spring boot·spring·spring cloud·css3·技术
gkdpjj2 分钟前
C++优选算法十四 优先级队列(堆)
开发语言·数据结构·c++·算法
Abladol-aj1 小时前
并发和并行的基础知识
java·linux·windows
清水白石0081 小时前
从一个“支付状态不一致“的bug,看大型分布式系统的“隐藏杀机“
java·数据库·bug
Elihuss2 小时前
ONVIF协议操作摄像头方法
开发语言·php
Swift社区5 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht5 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht6 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20246 小时前
Swift 数组
开发语言
吾日三省吾码6 小时前
JVM 性能调优
java