Skip to content

SpringBoot-Kai-Project-cli是基于SpringBoot的快速开发的模板,致力于快速上手开发SpringBoot项目 SpringBoot Kai Project cli is a template for rapid development based on SpringBoot, dedicated to quickly getting started with developing SpringBoot projects

License

Notifications You must be signed in to change notification settings

AlfonsoKevin/Kai-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpringBoot-Kai-Project-cli

Kaiの快速开发SpringBoot项目的脚手架。
持续更新中~

[中文|English]

介绍


基于SpringBoot的快速开发的模板,致力于快速上手开发SpringBoot项目

  • 采用Maven多模块化的架构模式
  • 引入常用的依赖,方便快速上手开发
  • 目录结构清晰,可维护性强

目录结构&设计🚀


├─📄 .gitignore------------------------------------------ # 防止git提交的文件
├─📁 kai-admin-server------------------------------------ # 管理端
├─📁 kai-custom-server----------------------------------- # C端
│ ├─📄 pom.xml------------------------------------------- # C端的依赖
│ └─📁 src
│   ├─📁 main
│   │ ├─📁 java
│   │ │ └─📁 com
│   │ │   └─📁 kaikai
│   │ │     └─📁 kproject
│   │ │       └─📁 custom
│   │ │         ├─📁 chat-------------------------------- # xx业务/模块(可修改)
│   │ │         ├─📁 common------------------------------ # 当前C端下通用的组件
│   │ │         │ ├─📁 config---------------------------- # Bean的配置管理
│   │ │         │ ├─📁 event----------------------------- # Spring事件监听
│   │ │         │ │ └─📁 listener------------------------ # 监听器
│   │ │         │ └─📁 intercepter----------------------- # 拦截器
│   │ │         ├─📄 KaiProjectCustomApplication.java
│   │ │         └─📁 user-------------------------------- # xx业务(以用户模块为例)
│   │ │           ├─📁 controller------------------------ # 控制层
│   │ │           ├─📁 dao------------------------------- # 封装的持久层
│   │ │           ├─📁 domain---------------------------- # 实体
│   │ │           │ ├─📁 dto----------------------------- # 面向service业务处理
│   │ │           │ ├─📁 entity-------------------------- # 实体
│   │ │           │ └─📁 vo------------------------------ # 前端的出入参
│   │ │           ├─📁 enums----------------------------- # 当前模块下的枚举类
│   │ │           ├─📁 mapper---------------------------- # mapper层
│   │ │           └─📁 service--------------------------- # 业务层
│   │ │             ├─📁 adapter------------------------- # 适配器,转换出入参的
│   │ │             └─📁 cache--------------------------- # 收口管理当前模块下的缓存
│   │ └─📁 resources
│   │   ├─📄 application-test.properties----------------- # 测试环境
│   │   └─📄 application.yml----------------------------- # 配置文件,多环境配置
│   └─📁 test-------------------------------------------- # 测试模块
│     └─📁 java
├─📁 kai-framework--------------------------------------- # 存放通用工具的
│ ├─📁 kai-common---------------------------------------- # 公共工具
│ │ ├─📄 pom.xml----------------------------------------- # 公共工具的依赖
│ │ └─📁 src
│ │   ├─📁 main
│ │   │ ├─📁 java
│ │   │ │ └─📁 com
│ │   │ │   └─📁 kaikai
│ │   │ │     └─📁 kproject
│ │   │ │       ├─📁 cache------------------------------- # 通用的缓存模块
│ │   │ │       └─📁 utils------------------------------- # 通用的工具类
│ │   │ └─📁 resources
│ │   └─📁 test
│ └─📄 pom.xml
└─📄 pom.xml--------------------------------------------- # 做依赖版本管理的父工程

详细介绍💻

分享我自己的多模块搭建模式,项目名以Kai-Project为例

整个项目主要有三部分:

kai-admin-server:提供管理端服务的包。引入kai-common模块的依赖

kai-custom-server:专门负责xx业务,如果是个人开发的话,可以将B,C端合并,改名为name-xxx-server,就是负责xxx的业务。引入kai-common模块的依赖

kai-framework:提供微服务的通用工具的包,里面可以有不同的模块,比如说

  • kai-common:提供通用模块的包,里面提供通用的工具类,同时引入通用的依赖。供其他部分使用。
  • kai-oss-starter:举例,可以有项目的分布式存储,日志打印框架都在这里创建。哪个端需要使用就直接引入
  • ...

Kai-Project只用于做父pom,管理依赖版本的。比如

   
<properties>
    <jsoup.version>1.15.3</jsoup.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>${jsoup.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
Dependencies Version
SpringBoot 2.6.7
JDK 8
MyBatis 3.5.10
Mybatis-Plus 3.4.1
MySQL 8.0.29
Hutool 5.8.18
Lombok 1.18.20
Netty 4.1.76.Final
Swagger 3.0.0
Rocketmq 2.2.2
Jwt 3.19.0
Spring-test 5.3.19
Minio 8.4.5
... ...

gitignore中隐藏了sql文件,还有application-prod.yml,可以自行创建。

食用指南✨

先决条件:

  • JDK8+
  • Maven3.0+

【方案一】

正确打开方式

你可以不使用命令行的方式来创建,可以自行搜索IDEA中添加Add Archetype的形式。

【方案二】手动修改

你可以拉取下代码任意进行修改,修改为你想要的项目的名字。

注意修改顺序:

假设你想要修改为Test-Project,项目里面是test-custom-server诸如此类的。

  1. 将项目clone下来,然后进行直接文件改名
  2. 删除.idea文件,.idea文件保留的是原先项目的信息
  3. (上传的时候ignore了.iml,target,如果有,请删除)创建想要的sql文件夹。
  4. 进入到maven中,将原先项目名使用全局搜索 + 全局替换(CTRL + SHFIT + F , CTRL + SHFIT + R)。从父工程开始,和你的第一步修改的名字对应,最简单的方式是只修改artifactId的部分。
  5. 以此类推,修改两个BC端的子工程,如果你想要合并,那就直接删除一个就行。然后是framework部分中管理的所有工具包,然后进入common包下修改。
  6. rm -rf .git删除git文件之后,自己自建仓库。
  7. 然后将所有的.gitkeep文件删除即可,是为了保留项目的目录结构
  8. 如果想要快速入门,还需要稍微改一下配置文件。删去暂时不用的配置,比如说Redis的,RocketMq的诸如此类的配置。
  9. 如果要修改src下面的文件夹,直接修改即可,要注意与启动类中的文件路径配置保持一致。
  10. 重新加载Maven,看看哪里还有点不太对的。

如下

如果喜欢的话,别忘了点个 ⭐,感谢🥰


修改 ⚡

2024/11/21

  • 上传到maven中央仓库
  • 修改了使用指南,简化创建项目

2024/11/20

  • 修改了custom-server下两个SpringBootApplication问题
  • 调整SpringBootApplication,application.yml,application.properties默认值的问题
  • 确保对应主入口的包路径是可以自定义的。

2024/11/18

  • 新增了用mvn的形式构建项目可见正确打开方式
  • 注释了common包下的Redisson,Redis,RocketMq相关依赖,方便启动,后续有使用再取消注释即可
  • 修改了配置文件,删除了多余的yml部分,自定义更强,牺牲了全面的yml结构,需要使用者自行去查找补充
  • 使得clone下来代码,只要有正确的数据库名密码,就可以立马启动
  • 新增application-all.properties之前的所有参数在这里

注意事项👂

  • .gitkeep 的作用:只是一个约定俗成的文件名,为了展示项目的目录结构,这个文件夹是故意保留的,使用时候直接删除。
  • 本项目仅供学习和参考使用,未经授权请勿用于商业目的。
  • 欢迎贡献代码或者提出建议,您可以通过提出 Issue 或者 Pull Request 的方式参与到项目中来。

参与贡献

如果您对项目有任何建议或想要贡献代码,欢迎提交 Issue 或 Pull Request。我们期待您的参与,共同完善和改进项目!


感谢您对该项目的关注和支持!🕵️‍♀️

About

SpringBoot-Kai-Project-cli是基于SpringBoot的快速开发的模板,致力于快速上手开发SpringBoot项目 SpringBoot Kai Project cli is a template for rapid development based on SpringBoot, dedicated to quickly getting started with developing SpringBoot projects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages