# skivingcloud-kderp
**Repository Path**: ruakuoluo/skivingcloud-kderp
## Basic Information
- **Project Name**: skivingcloud-kderp
- **Description**: skivingcloud-kderp
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-01-16
- **Last Updated**: 2025-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: jdk17, springcloud-alibaba, SpringBoot3
## README
# skivingcloud-boot3
## 目录
- [引言](#引言)
- [1.快速开始](#1快速开始)
- [1.1.安装mysql数据库](#11安装mysql数据库)
- [1.2.安装redis](#12安装redis)
- [1.3.安装nacos](#13安装nacos)
- [1.4.准备java环境](#14准备java环境)
- [1.5.启动服务](#15启动服务)
- [2.技术架构说明](#2技术架构说明)
- [2.1.总体架构](#21总体架构)
- [2.2.技术架构](#22技术架构)
- [2.3.技术框架版本说明](#23技术框架版本说明)
- [3.二次开发说明](#3二次开发说明)
## 引言
SkivingCloud(摸鱼微服务)是一个基于SpringCloud Alibaba的微服务开发平台,以下简称平台,基于SpringBoot3+构建,支持JDK17+版本。
平台主要致力于通过集成SpringBoot、SpringCloud、SpringCloud Alibaba开发框架搭建微服务开发平台,为开发人员提供快速开发的基础平台。
平台集成knife4j(用于生成api文档)、SpringSecurity(用于用户权限认证)、SpringValidation(用于交互数据合法性校验)、
OpenFeign(用于服务间调用)、Mybatis-Flex(用户数据库交互)等框架技术实现平台基础支撑。平台同时还提供了流程管理(camunda-starter)、
文件管理(file-starter)、低代码开发(develop-starter)、报表管理(report-starter)、集成通义千问AI大模型(ai-starter)等可插拔的实用
基础功能,开发人员可在不写任何程序代码的情况下通过功能配置开发一些简单的业务功能。
平台适合于有一定java开发基础人员进行微服务开发学习,同时也适合需要快速搭建大型企业应用微服务架构的项目组进行基础开发环境搭建;另外如果业务比较简单的情况下可通过无代码直接实现一些包含流程的基础功能(例如OA类功能)。
## 1.快速开始
### 1.1.安装mysql数据库
安装方式:略。安装后创建skivingcloud数据库,导入初始化sql(init.sql)。
### 1.2.安装redis
安装方式:略
### 1.3.安装nacos
安装方式请参考nacos官网。安装完后启动nacos。
(1).访问http:[ip]:8848/nacos
(2).在nacos中新建名为“skivingcloud”的命名空间
(3).在命名空间导入配置文件“nacos_config_export_20250219133930.zip”
(4).按自己实际情况更改mysql数据库及redis用户名密码
### 1.4.准备java环境
安装jdk及配置环境变量,准备maven环境。
### 1.5.启动服务
(1).更改微服务注册信息:src/main/resource/bootstrap.yml中的注册中心及配置中心地址、命名空间、用户名、密码,即nacos的地址、用户名、密码、命名空间。
~~~
spring:
profiles:
active: dev
application:
name: admin-server
cloud:
nacos:
discovery:
enabled: true
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
# 命名空间id,可以做到命名空间隔离,一个nacos服务支持多套环境的效果
namespace: d3a3b537-5ae7-4673-97cd-e0f5aa185c39
#false为永久实例遵循CP原则,true为临时实例遵循AP原则,默认值为true
ephemeral: true
config:
enabled: true
server-addr: 127.0.0.1:8848
namespace: d3a3b537-5ae7-4673-97cd-e0f5aa185c39
name: skivingcloud-config-mysql
file-extension: yml
username: nacos
password: nacos
~~~
(2).启动网关(skivingcloud-boot3-gateway)、基础服务(skivingcloud-boot3-admin)服务。
(3).启动前端程序,访问http://localhost:8009访问服务,内置用户admin/123456

## 2.技术架构说明
### 2.1.总体架构
平台采用前后端分离架构。基于微服务架构构建项目,提供开箱即用的微服务开发平台,帮助开发人员快速搭建开发环境。总体架构图如下,右侧虚线为平台可支持的监控环境,部署时按需选用。

### 2.2.技术架构
后端基于SpringCloud Alibaba微服务框架构建,前端采用Vue3+Typescript技术,使用vite进行构建,Element-Plus做UI框架,集成echarts用于报表开发。

### 2.3.技术框架版本说明
| 技术框架 | 版本 |
|---------------------|------------|
| JDK | 17+ |
| SpringBoot | 3.2.5 |
| SpringCloud | 2023.0.1 |
| SpringCloud Alibaba | 2023.0.1.0 |
| mybatis-flex | 1.8.8 |
| Mysql | 5+ |
| Redis | 6+ |
| Node.js | 16+ |
| NPM | 7+ |
| Element-Plus | 2.4+ |
| Vite | 4+ |
| VForm3 | 3+ |
| Echarts | 5+ |
| bpmn-js | 15+ |
| typescript | 5+ |
## 3.二次开发说明
### 3.1.配置说明
平台使用jasypt进行配置文件密码加密(等保三级强制要求),数据库、redis等密码需要通过加密后进行配置,在skivingcloud-boot3-admin/src/main/java/com.skivingcloud.admin.utils.JasyptUtil类中有加密方法,执行main方法进行加密,其中salt值要与配置中心配置文件中jasypt.encryptor.password的值一致。
如果写在配置文件中任然觉得不安全可以在服务启动时通过参数传入各类密码和salt值,例如:java -jar xxx.jar --jasypt.encryptor.password=xxxxxx。
### 3.2.代码生成工具
平台使用mybatis-flex作为数据库操作框架。mybatis-flex提供了代码生成工具,平台在此基础上进行了一点改造,同时增加了前端代码的生成,开发人员可以通过数据库表快速生成基本增删查改功能。
代码生成工具在skivingcloud-boot3-mybatis-flex/com.skivingcloud.mybatis.flex.codegen.MybatisFlexCodegen类,配置上你需要生成代码的数据库、表及生成目录,运行main方法即可生成代码。
### 3.3.低代码功能开发
平台提供了一套低代码开发平台,通过配置即可实现包含流程的简单功能,具体使用流程如下:

(1).开发表单:功能“功能开发-表单设计”进行表单开发,前端集成了VForm3可进行所见即所得的表单开发。

(2).流程设计:功能“功能开发-流程设计”进行流程设计,前端集成bpmn.js进行流程设计。

(3).功能开发:功能“功能开发-功能开发”进行功能功能开发,选择设计好的表单和流程(如果需要),如果使用自定义后端接口还可以对接口进行配置,接口必须使用post请求形式,交互数据使用json格式。

(4).配置菜单:根据步骤(3)"菜单路径"项在功能“系统管理-权限管理-资源管理”中进行菜单维护。
### 3.4.API文档管理
平台集成knife4j用于生成api文档,开发人员只需在接口方法上加上@Operation注解即可实现自动生成api文档。服务启动后通过访问http://[ip]:[port]/doc.html即可访问api文档。

### 3.5.表单验证
平台集成spring-validation,对前后端交互的数据进行验证,参数bean的属性上添加注解:例如@NotBlank标识该属性不能为空,@Size限制该属性最大字符长度等,并可在注解中制定验证失败时的提升信息。
在controller方法的参数中按需添加@Validated注解来启用参数验证。
### 3.6.报表开发
#### 3.6.1.功能说明