# lala-boot
**Repository Path**: jerry_up_lala/lala-boot
## Basic Information
- **Project Name**: lala-boot
- **Description**: springboot架构的服务端,基于lala-framework提供各种常见的后端功能样例
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://lala-boot-web.pages.dev
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-06-24
- **Last Updated**: 2025-11-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
jerry-up · lala · lala-boot
springboot架构的服务端,基于lala-framework提供各种常见的后端功能样例
## 1. 项目简介
汇聚后端开发中常用的技术,功能,场景,提供使用样例。
| 项目 | 仓库地址 | 说明 |
| ------------------------------------------------------ | ------------------------ | ------------------------ |
| framework | [](https://gitee.com/jerry_up_lala/lala-framework) [](https://github.com/jerry-up-lala/lala-framework)| 基础框架 |
| lala-boot-web | [](https://gitee.com/jerry_up_lala/lala-boot-web) [](https://github.com/jerry-up-lala/lala-boot-web) | 配套前端 |
## 2. 目录说明
```sh
lala-boot
└──apidoc #接口文档
└──assets #附件
└──boot #服务端代码
│ └─src
│ └─main
│ └─java
│ | └─com.jerry.up.lala.boot
│ | ├─access #访问权限码
│ | ├─bo #业务对象
│ | ├─component #组件
│ | ├─config #配置
│ | ├─constant #常量
│ | ├─ctrl #控制层
│ | ├─dto #数据交互对象
│ | ├─entity #实体
│ | ├─enums #枚举
│ | ├─error #错误码
│ | ├─listener #监听
│ | ├─mapper #mapper
│ | ├─properties #配置
│ | ├─service #业务层
│ | ├─vo #视图对象
│ | └──**App #服务启动类
│ └──resources
│ ├─excel #Excel模板文件
│ ├─gen #代码生成模板
│ ├─mapper #mybatis mapper xml文件
│ ├─banner.txt #欢迎页
│ └─bootstrap.yml #配置文件
├──deploy #部署脚本
│ ├─docker #docker环境部署
│ ├─jar #jar方式部署
│ ├─k8s #kuberntes环境部署
│ └─compile.sh #编译脚本
├──nacos #nacos配置文件
└──sql #sql脚本
```
## 3. 功能列表
| 功能 | 说明 |
| ---------- | ------------------------------------------------------------ |
| 工作台 | 请求日志统计,个人信息,个人通知,快捷入口 |
| crud样例 | 提供MySQL数据库增删改查样例,包含`原生模式`,`组件模式`,`脚手架模式`等三种风格样例 |
| http样例 | 提供发送Http请求样例 |
| 线程池样例 | 提供线程池参数配置样例 |
| Redis | 提供Redis数据库增删改查以及编辑有效期样例,支持`String`,`List`,`Set`,`ZSet`,`Hash`等五种数据类型 |
| 消息队列 | 提供RocketMQ消息队列生产消费样例 |
| 系统管理 | 提供集团管理,菜单管理,用户管理,角色管理,通知管理等后台系统配置基本功能 |
| 开发工具 | 提供请求日志,字典管理,代码生成等研发常用工具 |
| 个人中心 | 提供个人信息维护,个人通知管理功能 |
## 4. 初始化环境
### 4.1. 安装中间件
> 可通过[lala-boot-tool](https://gitee.com/jerry_up_lala/lala-boot-tool)基于docker或者参照[中间件安装](https://jerry-up-blog.pages.dev/tool/middleware/)初始化环境,亦可自行安装如下版本中间件。
| 名称 | 版本 |
| ------------------------------------------- | ------------------------------------------------------------ |
| [MySQL](https://www.mysql.com/) | [5.7.36](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-36.html) |
| [Redis](https://redis.io) | [6.2.13](https://github.com/redis/redis/releases/tag/6.2.13) |
| [Nacos](https://nacos.io/zh-cn/) | [2.2.0](https://github.com/alibaba/nacos/releases/tag/2.2.0) |
| [RocketMQ](https://rocketmq.apache.org/zh/) | [5.0.0](https://github.com/apache/rocketmq/releases/tag/rocketmq-all-5.0.0) |
### 4.2. 初始化数据库
> 执行 `./sql/v1.0.0.sql` ,会自动创建`lala_boot`数据库并初始化表结构以及数据。
```sh
# 替换如下命令 对应的 ip,端口,用户名,密码。
mysql -h127.0.0.1 -P3306 -uroot -p123456 < ./sql/v1.0.0.sql
```

### 4.3. 初始化Nacos配置
> `./nacos`文件夹下,以`Group`为文件夹,`Data ID`为文件名。
1. 在`./nacos/LALA_BOOT_GROUP`文件夹下新增`env.***.yaml`配置文件,根据实际的环境进行参数配置。
> 样例配置文件参考`./nacos/LALA_BOOT_GROUP/env.192.168.35.61.yaml`。
| 配置项 | 说明 |
| ------ | ---- |
|env.mail.host|邮件发信主机|
|env.mail.port|邮件发信端口|
|env.mail.from|邮件发信人邮箱|
|env.mail.user|邮件发信人账号|
|env.mail.pass|邮件发信人密码|
|env.mail.subjectPrefix|邮件发信主题|
|env.error.catchPrint|捕获异常打印|
|env.error.servicePrint|业务异常打印|
|env.error.runTimePrint|运行时异常打印|
|env.error.mailOpen|异常是否邮件提醒|
|env.error.mailLevel|异常邮件提醒级别|
|env.error.mailReceivers|异常邮件收件人|
|env.log.mq|请求日志是否发送至消息队列|
|env.log.print|请求日志是否打印|
|env.mysql.host|MySQL地址|
|env.mysql.username|MySQL用户名|
|env.mysql.password|MySQL密码|
|env.redis.host|Redis地址|
|env.redis.password|Redis密码|
|env.rocketmq.nameServer|RocketMQ地址|
|env.druid.username|Druid用户名|
|env.druid.password|Druid密码|
|env.token.activityTimeout|最低活跃频率,单位/秒|
|env.token.jwtSecretKey|jwt秘钥|
|env.token.redisHost|Sa-Token独立使用的Redis地址|
|env.token.redisPort|Sa-Token独立使用的Redis端口|
|env.token.redisPassword|Sa-Token独立使用的Redis密码|
|env.token.redisDatabase|Sa-Token独立使用的Redis数据库索引|
|env.access|接口是否校验访问权限|
|env.upload.max|上传Excel最大条数|
|env.upload.partition|上传Excel批量处理分区大小|
2. 将`./nacos/LALA_BOOT_GROUP`文件夹进行压缩,导入至Nacos。

## 5. 本地开发
### 5.1. 前置准备
#### 5.1.1. JDK
项目需要JDK8

#### 5.1.2. Maven
> 使用Maven进行依赖管理,默认使用阿里云效提供的[免费制品仓库](https://jerry-up-blog.pages.dev/tool/env/repository.html#_2-1-maven%E4%BB%93%E5%BA%93)。
- 方式一,替换`pom.xml`中地址为自己使用的Maven地址,并推送framework基础依赖包至Maven仓库。
- 方式二,修改`settings.xml`为如下配置(只有拉取代码权限,无推送权限)。
```xml
/Applications/code-tool/maven/repository
rdc-releases
65edb330dfac75d8a9644531
xh10uWIOTOHV
rdc-snapshots
65edb330dfac75d8a9644531
xh10uWIOTOHV
mirror
central,jcenter,!rdc-releases,!rdc-snapshots
mirror
https://maven.aliyun.com/nexus/content/groups/public
rdc
rdc-releases::default::https://packages.aliyun.com/maven/repository/2365883-release-DDVVbg/
rdc-snapshots::default::https://packages.aliyun.com/maven/repository/2365883-snapshot-3GEFXp/
rdc
```
### 5.2. 项目导入
```sh
git clone https://gitee.com/jerry_up_lala/lala-boot.git
```

### 5.3. 启动
#### 5.3.1. 设置环境变量
```sh
# 环境变量样例
DATA_PATH=/Users/jerry/root/root/data/lala-boot;NACOS_CONFIG_HOST=192.168.35.61:8848;NACOS_CONFIG_GROUP=LALA_BOOT_GROUP;NACOS_CONFIG_ENV=env.192.168.35.61.yaml
```
| 变量名 | 说明 | 样例值 | 默认值 |
| ------------------ | ------------ | -------------------------------- | --------------- |
| DATA_PATH | 数据存放路径 | /Users/jerry/root/root/data/lala-boot | /data |
| NACOS_CONFIG_HOST | 配置中心地址 | 192.168.35.61:8848 | 127.0.0.1:8848 |
| NACOS_CONFIG_GROUP | 配置中心分组 | LALA_BOOT_GROUP | LALA_BOOT_GROUP |
| NACOS_CONFIG_ENV | 配置环境 | env.192.168.35.61.yaml | env.local.yaml |

#### 5.3.2. idea启动应用

#### 5.3.3. 验证接口
> 系统管理员默认用户名为`admin`, 密码为`lala`。
```sh
curl --location --request POST 'http://localhost:8080/open/sys/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"loginName": "admin",
"passWord": "lala"
}'
```

#### 5.3.4. 接口文档
[【1】在线文档](https://jerry-up-lala-boot.apifox.cn)
[【2】离线文档](./apidoc/lala-boot.html)
## 6. 部署
> 提供`java -jar`,`docker run`,`k8s` 3种部署模式。
### 6.1. jar方式部署
> 进入 `deploy/jar`目录,进行如下操作。会在配置的部署文件夹路径生成jar包,启动脚本,停止脚本。
1. 修改`jar.properties`配置文件。
| 变量名 | 说明 | 默认值 |
| ------------------ | --------------------------------- | -------------------------------------- |
| DEPLOY_DIR | 部署文件夹,jar包以及运行脚本路径 | /Users/jerry/Desktop/jerry_up_lala/lala-boot/jar |
| NACOS_CONFIG_HOST | 配置中心地址 | 127.0.0.1:8848 |
| NACOS_CONFIG_GROUP | 配置中心分组 | LALA_BOOT_GROUP |
| NACOS_CONFIG_ENV | 配置环境 | env.local.yaml |
| POM_VERSION | pom文件版本 | 1.0.0 |
2. 运行`jar.sh`,会编译`boot`并将编译后的文件以及部署脚本放至部署文件夹。

3. 切换至部署文件夹,运行`sh start.sh`。

### 6.2. docker方式部署
> 进入 `deploy/docker`目录,进行如下操作。会编译代码并上传镜像至仓库,在配置的部署文件夹路径生成启动脚本,停止脚本。
1. 修改`docker.properties`配置文件。
> :heavy_exclamation_mark: docker镜像仓库默认配置需要登录权限,请替换为自己的私有镜像仓库。也可以使用阿里云提供的[免费docker镜像仓库](https://jerry-up-blog.pages.dev/tool/env/repository.html#_2-1-docker%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93)。
| 变量名 | 说明 | 默认值 |
| ------------------ | ------------------------ | ------------------------------------------ |
| DEPLOY_DIR | 部署文件夹,运行脚本路径 | /Users/jerry/Desktop/jerry_up_lala/lala-boot/docker |
| NACOS_CONFIG_HOST | 配置中心地址 | 127.0.0.1:8848 |
| NACOS_CONFIG_GROUP | 配置中心分组 | LALA_BOOT_GROUP |
| NACOS_CONFIG_ENV | 配置环境 | env.local.yaml |
| POM_VERSION | pom文件版本 | 1.0.0 |
| DOCKER_REGISTRY | Docker镜像仓库地址 | registry.cn-hangzhou.aliyuncs.com/jerry-up |
2. 运行`docker.sh`,会编译`boot`并根据`Dockerfile`生成进行上传至镜像仓库,并将部署脚本放至部署文件夹。

3. 切换至部署文件夹,运行`sh start.sh`。
> :bulb: 启动之前会运行`server_port.sh`脚本,从`8080`端口开始寻找空闲端口作为映射宿主机端口。

### 6.3. k8s方式部署
> 进入 `deploy/k8s`目录,进行如下操作。会编译代码并上传镜像至仓库,并在部署文件夹路径生成编排文件,启动脚本,停止脚本。
1. 修改`k8s.properties`配置文件。
> :heavy_exclamation_mark: docker镜像仓库默认配置需要登录权限,请替换为自己的私有镜像仓库。也可以使用阿里云提供的[免费docker镜像仓库](https://jerry-up-blog.pages.dev/tool/env/repository.html#_2-1-docker%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93)。
| 变量名 | 说明 | 默认值 |
| ------------------ | ------------------------ | ------------------------------------------ |
| DEPLOY_DIR | 部署文件夹,运行脚本路径 | /Users/jerry/Desktop/jerry_up_lala/lala-boot/k8s |
| NACOS_CONFIG_HOST | 配置中心地址 | 127.0.0.1:8848 |
| NACOS_CONFIG_GROUP | 配置中心分组 | LALA_BOOT_GROUP |
| NACOS_CONFIG_ENV | 配置环境 | env.local.yaml |
| POM_VERSION | pom文件版本 | 1.0.0 |
| DOCKER_REGISTRY | Docker镜像仓库地址 | registry.cn-hangzhou.aliyuncs.com/jerry-up |
2. 根据不同的操作系统运行`k8s_mac.sh`或者`k8s_linux.sh`,会编译`boot`并根据`Dockerfile`生成进行上传至镜像仓库,并将编排文件,部署脚本放至部署文件夹。
> :bulb: 由于sed命令在macOS以Linux操作系统存在差异,请根据不同操作系统运行不同的脚本。

3. 切换至部署文件夹,运行`sh start.sh`。
> :bulb: 启动之前会运行`server_port.sh`脚本,从`30010`端口开始寻找空闲端口作为k8s Service `nodePort`端口。
