开箱即用的SpringBoot项目,整合了常规业务所需的框架功能,可自由组合各个模块
一个整合了一些常用功能开箱即用的SpringBoot项目,模块划分清晰易懂,可按需自由组合各个模块运行。
注意:本项目使用了lombok来简化Getter/Setter,所以需要安装lombok插件才能保证编译不报错
本项目整合了Swagger,启动web模块后可以通过http://127.0.0.1:2019/doc.html查看
./mvnw clean install
docker目录里面包含了本项目部分模块需要依赖的的组件环境,可通过脚本一键启动,README.md有详细使用介绍
包含缓存相关的操作案例
包含一些通用的工具类等
通用web模块,封装服务于HTTP接口通用的一些类,所有需要对外提供HTTP服务的模块都会依赖此模块
数据访问模块,基于MyBatis封装了包含User和UserLogin两个表的基本操作
SQL部分是基于sharding-jdbc分库分表写的,数据库表初始化文件为spring_project_1.sql和spring_project_2.sql
部分需要操作数据库的模块会依赖此模块
依赖于springboot-dao,对外提供访问数据库相关操作的接口,主要是为了方便把dao做成可选的灵活组合,一般整合在web模块的
部分需要操作数据库的模块会依赖此模块
dubbo服务的api模块,dubbo-provider和dubbo-consumer会依赖此模块
dubbo服务消费者,内容包含
dubbo服务提供者,包含基于dubbo-api模块实现的dubbo服务,提供了两种协议(dubbo和rest)
可单独启动,入口为DubboApplication
rest协议调用
curl --location --request POST 'http://127.0.0.1:8080/dubbo-rest/getDubboInfo' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": 1
}'
包含elasticsearch服务基本crud操作
feign服务消费者,包含简单的feign服务调用示例,使用consul做服务发现
feign服务提供者,包含简单的基于feign实现的服务,使用consul做服务注册,可单独启动,入口为FeignApplication
整合美团开源的分布式ID生成服务leaf,包含记录HTTP接口耗时日志切面,数据库表初始化文件为leaf.sql
包含基于netty+websocket实现的简易聊天室功能,入口页面为chat-netty.html
包含RocketMQ的消费者使用示例,消息来自于rocketmq-producer模块
RocketMQ的消息生产者模块,内容包含
seata示例的TM服务,可单独启动,docker目录下有seata-server的容器配置
seata功能的通用模块
seata功能的订单RM服务,可单独启动
seata功能的商品库存RM服务,可单独启动
Web模块,默认整合依赖了其他所有不支持单独启动的功能模块,可根据实际需要进行增删调整,启动入口为WebApplication,里面包含了所有其他模块需要的注解配置
本模块内容包括
包含基于zookeeper实现的分布式锁示例