# Yue-An-mini-Plus **Repository Path**: ukoko/yue-an-mini-plus ## Basic Information - **Project Name**: Yue-An-mini-Plus - **Description**: 单点后端基础框架--简洁版 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2024-09-24 - **Last Updated**: 2026-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #
Yue-An-mini-Plus平台简介
####
基于SpringBoot研发的后端极简开发框架(搭配ya-admin模板)
abc abc abc abc abc abc
## 一、概述 ### 1. 介绍 单点后端基础框架--简洁版(适配ya-admin前端模板) ``` 预览地址: http://106.14.27.178/ 用户名/密码: admin/admin 数据每隔半小时重置一次 在线API文档地址: http://106.14.27.178:8080/doc.html ``` abc ### 2. 本地开发部署 #### 2.1 数据库 ``` 第一步: 创建数据库命令 CREATE DATABASE `yue-an-mini-plus` CHARACTER SET utf8; 第二步: 执行SQL文件 执行 yue-an-mini-plus/sql/yue-an-mini-plus-export.sql 文件 ``` #### 2.2 后端开发部署 ``` 1. 克隆项目到本地 git clone https://gitee.com/ukoko/yue-an-mini-plus.git 2. 导入到IDEA开发工具中 3. 修改配置文件 application-dev.yml 中的数据库密码为自己的数据库密码 ``` #### 2.3 前端开发部署 ``` 使用vscode开发工具打开项目,不要用别的开发工具,具体原因参考 https://hs-an-yue.github.io/ 博客中的《Live Server代理实现》 ``` ## 二、特别重要(写在前面) ``` 大家在进行代码开发时经常会进行判空操作 1. 对象判空 2. 字符串判空 3. 集合判空 3.1 Collection集合判空 3.2 Map集合判空 4. 数组判空 大家在进行判空时尽量不要使用 !=null 或者 !="" 这样的操作,不是不能用,是当前项目中提供了工具类 例如 hutool工具类 1. 对象判空 使用jdk自带的Objects (java.util.Objects) 2. 字符串判空 使用commons-lang3 (org.apache.commons.lang3.StringUtils) 3. 集合判空 3.1 Collection集合判空 hutool工具CollectionUtil(cn.hutool.core.collection.CollectionUtil) 3.2 Map集合判空 hutool工具MapUtil(cn.hutool.core.map.MapUtil) 4. 数组判空 hutool工具类ArrayUtil(cn.hutool.core.util.ArrayUtil) 工具不限于上面所介绍的,因为当前项目中集成了很多框架,几乎每一个框架都带有自己的判空逻辑,我们作为程序员完全可以复用. ``` ## 三、为什么选择SpringBoot3.3.4版本 因为SpringBoot从此版本后开始支持AI模型,AI模型是近年来比较热门的方向,所以架构定位使用SpringBoot3.3.4 我们可以不用,但是不能不支持 abc ## 四、技术清单
技术名称 版本 备注 文档
JDK 17 SpringBoot3.x 最低需要JDK17 https://www.oracle.com/cn/
SpringBoot 3.3.4 此版本后开始支持AI大模型 例如 ollama https://docs.spring.io/spring-boot/index.html
SpringSecurity 6.3.3 权限采用RBAC模式 https://spring.io/projects/spring-security/
MyBaits-Plus 3.5.12 ORM框架 https://baomidou.com
java-jwt 3.3.0 token生成工具 https://jwt.io/
ip-info 2.1.7 ip地址定位 ipv4,ipv6 https://gitee.com/jthinking/ip-info
hutool-all 5.8.32 Hutool工具箱 https://doc.hutool.cn/
slf4j+logback 跟随SpringBoot版本 日志 https://spring.io/
pagehelper 2.1.0 分页插件 https://github.com/pagehelper/pagehelper-spring-boot
knife4j 4.4.0 在线API文档工具 https://doc.xiaominfo.com/
lombok 跟随SpringBoot版本 Java库(get/set/构造器/日志等) https://spring.io/
ai-ollama 1.0.0 M2 AI大模型(需要本地自己部署,或者调用其他厂商API) https://spring.io/projects/spring-ai/ (Spring官网文档)
https://github.com/hs-an-yue/handy-ollama (ollama学习文档)
## 五、功能介绍 ### 1. 基础架构功能
业务功能 是否完成 备注
统一异常处理
统一日志处理
统一提示消息处理
用户信息定位
日志链路追踪 MDC
权限控制 基于RBAC 【SpringSecurity任意版本快速入门】 https://www.bilibili.com/video/BV1sFtyefEyo/?share_source=copy_web&vd_source=8db8b6483dca8eb390d2e74514e2c7d2
### 2. 基础业务功能
业务功能 是否完成 备注
验证码
用户登录
头像上传
文件上传
账户过期禁用 通过定时任务(每晚11点开始运行任务)
### 3. 项目结构展示 abc abc abc abc abc abc ### 4. 在线API文档展示 abc ### 5. 日志链路追踪演示 > 模拟异常(随便搞出一个异常) 复制链路追踪码 abc > 去Linux服务器定位日志的位置 使用命令 grep '链路追踪码' 日志文件 abc > 正常日志打印 业务日志都带有链路追踪码 abc ### 6. banner定制化 abc ### 7. 注意 ``` 1. SpringBoot3.x 集成 knife4j-openapi3 会报一个不影响系统使用的BUG 此BUG是因为配置了全局异常处理器,knife4j在运行时,去 resources/static 目录下 找favicon.ico文件,找不到走了全局异常处理器,不影响系统使用 解决方案: 强迫症者的福音,在 resources/static 目录下随便创建一个favicon.ico类型文件即可 2. 大家谨遵业务逻辑处理尽量都要放在Service层,否则业务复杂度高时,数据量大时,事务问题可能隐藏着特别深的坑,大家最好不要service层调用service层方法,可能会出现事务的传播行为,有些行为可能是你想要的,有些不是,一旦出现很难定位. 3. 应用在打包部署到Centos服务器上时,有些服务器可能缺少字体,报异常(Handler dispatch failed; nested exception is java.lang.InternalError: java.lang.reflect.InvocationTargeException) 这里以Centos为例安装字体步骤如下: 第一步: 安装: yum install fontconfig 第二步: 切换到目录: cd /usr/share/fonts 第三步: 刷新: fc-cache 第四步: 重新启动软件应用 4. 由于ORM框架升级出现的问题介绍 问题: mybatis升级到mybatis-plus会出现 mybatis-plus不支持联合主键的问题 @TableId注解在一个类中只能有一个,但是联合主键主键有多个,所以mybatis-plus不支持联合主键 解决方案: 方案1: 采用原生mybatis的SQL语句方式操作带有联合主键的表 方案2: 社区有人专门提供了解决方案 mybatisplus-plus (地址: https://gitee.com/jeffreyning/mybatisplus-plus) 个人不建议使用,因为社区升级或者BUG修复可能跟不上,这个需要个人评估影响 ``` > QQ群 abc --- > BUG修复 ``` 2024/10/20 修复SpringSecurity各个认证状态失败提示消息修改 2024/10/24 添加用户到期禁用的定时任务 2025/7/8 升级ORM框架 mybatis --> mybatis-plus ```