mirror of https://github.com/elunez/eladmin
![]() * Update LogServiceImpl.java 断言不适合用于参数验证,因为断言可以在JVM中的运行时被禁用,这意味着错误的操作设置将完全消除预期的检查。此外,失败的断言会抛出断言错误,而不是抛出某种类型的异常。抛出错误完全超出了正常程序中预期的捕获/抛出行为的正常范围。使用 if 代替 断言, 并抛出 IllegalArgumentException 更可控 * 代码完善 使用size()测试空性是可行的,但使用isEmpty()可以使代码更可读,性能也更高。任何isEmpty()方法实现的时间复杂度都应该是O(1),而size()的一些实现可以是O(n)。 * Update RedisConfig.java 1. 注释写的是 默认两小时, 但是代码写的是 6 小时, 所以应指定哪一个 ? 2. 当没有出现碰撞时, 固定的 3个 kv 对, size 达到 3 个, 如果方法参数不为空, 则会触发 HashMap 扩容, 影响性能 3 + params.length > (2^2 * 0.75 = 3) 2. 仍然引用的是 apache 的方法, 为了去除歧义, 应使用全类名指定 如果方法返回值包含 null, 则加上 @Nullable 注解, 代码更易读 * 添加 Nullable 注解所需导入的包 * 删除不用的包 改用 org.apache.commons.lang3.StringUtils 全类名调用 isBlank() 方法后, 原 import me.zhengjie.utils.StringUtils; 可以删除 * 调用replaceAll() 方法修改为调用 replace() 方法 传给 replaceAll 的参数不是正则表达式, replaceAll 和 replace 效果是一样的, 且 replaceAll 由于会调用 ava.util.regex.Pattern.compile()方法, 导致性能消耗更大 |
||
---|---|---|
.github | ||
eladmin-common | ||
eladmin-generator | ||
eladmin-logging | ||
eladmin-system | ||
eladmin-tools | ||
sql | ||
.gitignore | ||
LICENSE | ||
README.md | ||
pom.xml |
README.md
EL-ADMIN 后台管理系统
项目简介
一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统
开发文档: https://el-admin.vip
体验地址: https://el-admin.xin
账号密码: admin / 123456
项目源码
后端源码 | 前端源码 | |
---|---|---|
github | https://github.com/elunez/eladmin | https://github.com/elunez/eladmin-web |
码云 | https://gitee.com/elunez/eladmin | https://gitee.com/elunez/eladmin-web |
主要特性
- 使用最新技术栈,社区资源丰富。
- 高效率开发,代码生成器可一键生成前后端代码
- 支持数据字典,可方便地对一些状态进行管理
- 支持接口限流,避免恶意请求导致服务层压力过大
- 支持接口级别的功能权限与数据权限,可自定义操作
- 自定义权限注解与匿名接口注解,可快速对接口拦截与放行
- 对一些常用地前端组件封装:表格数据请求、数据字典等
- 前后端统一异常拦截处理,统一输出异常,避免繁琐的判断
- 支持在线用户管理与服务器性能监控,支持限制单用户登录
- 支持运维管理,可方便地对远程服务器的应用进行部署与管理
系统功能
- 用户管理:提供用户的相关配置,新增用户后,默认密码为123456
- 角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限
- 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单
- 部门管理:可配置系统组织架构,树形表格展示
- 岗位管理:配置各个部门的职位
- 字典管理:可维护常用一些固定的数据,如:状态,性别等
- 系统日志:记录用户操作日志与异常日志,方便开发人员定位排错
- SQL监控:采用druid 监控数据库访问性能,默认用户名admin,密码123456
- 定时任务:整合Quartz做定时任务,加入任务日志,任务运行情况一目了然
- 代码生成:高灵活度生成前后端代码,减少大量重复的工作任务
- 邮件工具:配合富文本,发送html格式的邮件
- 七牛云存储:可同步七牛云存储的数据到系统,无需登录七牛云直接操作云数据
- 支付宝支付:整合了支付宝支付并且提供了测试账号,可自行测试
- 服务监控:监控服务器的负载情况
- 运维管理:一键部署你的应用
项目结构
项目采用按功能分模块的开发方式,结构如下
-
eladmin-common
为系统的公共模块,各种工具类,公共配置存在该模块 -
eladmin-system
为系统核心模块也是项目入口模块,也是最终需要打包部署的模块 -
eladmin-logging
为系统的日志模块,其他模块如果需要记录日志需要引入该模块 -
eladmin-tools
为第三方工具模块,包含:图床、邮件、云存储、本地存储、支付宝 -
eladmin-generator
为系统的代码生成模块,代码生成的模板在 system 模块中
详细结构
- eladmin-common 公共模块
- annotation 为系统自定义注解
- aspect 自定义注解的切面
- base 提供了Entity、DTO基类和mapstruct的通用mapper
- config 自定义权限实现、redis配置、swagger配置、Rsa配置等
- exception 项目统一异常的处理
- utils 系统通用工具类
- eladmin-system 系统核心模块(系统启动入口)
- config 配置跨域与静态资源,与数据权限
- thread 线程池相关
- modules 系统相关模块(登录授权、系统监控、定时任务、运维管理等)
- eladmin-logging 系统日志模块
- eladmin-tools 系统第三方工具模块
- eladmin-generator 系统代码生成模块
特别鸣谢
-
感谢 JetBrains 提供的非商业开源软件开发授权
-
感谢 七牛云 提供的免费云存储与CDN加速支持
-
感谢 PanJiaChen 大佬提供的前端模板
-
感谢 Moxun 大佬提供的前端 Curd 通用组件
-
感谢 zhy6599 大佬提供的后端运维管理相关功能
-
感谢 j.yao.SUSE 大佬提供的匿名接口与Redis限流等功能
-
感谢 d15801543974 大佬提供的基于注解的通用查询方式
项目捐赠
项目的发展离不开你的支持,请作者喝杯咖啡吧☕ Donate
反馈交流
- QQ交流群:一群:
891137268、二群:947578238、三群:659622532