remember-5 / eladmin-plus

二次开发的eladmin

Home Page:http://eladmin.remember5.top

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

项目简介

请在开发前,一定要先阅读完本文档

本项目是基于eladmin 的基础上,二次开发的项目,欢迎各位大佬贡献代码

演示地址:http://eladmin.remember5.top

已同步官方的版本f78adec4ec757b6e22f116abd60eba0ae081bac7

注意!!! 注意!!! 注意!!!

DB_HOST=127.0.0.1;DB_PORT=3306;DB_NAME=eladmin;DB_USER=root;DB_PWD=123456,DB_SCHEMA=eladmin_schema;REDIS_HOST=127.0.0.1;REDIS_PORT=6379;REDIS_PWD=;REDIS_DB=0;DRUID_USER=admin;DRUID_PWD=123456;

启动前,请加入环境变量:

变量名称 说明 默认值
DB_HOST 数据库地址 默认 127.0.0.1
DB_PORT 数据库端口 默认 3306
DB_NAME 数据库名称 默认 eladmin
DB_USER 数据库用户名 默认 root
DB_PWD 用户名密码 默认 123456
DB_SCHEMA schema 默认 eladmin
REDIS_HOST Redis地址 默认127.0.0.1
REDIS_PORT Redis端口 默认6379
REDIS_PWD Redis密码 默认没有密码
REDIS_DB Redis的DB 默认 0
DRUID_USER druid用户 默认 admin
DRUID_PWD druid密码 默认 123456
MINIO_HOST minio地址 默认 无
MINIO_BUCKET minio桶 默认 无
MINIO_AK minio的AccessKey 默认 无
MINIO_SK minio的SecretKey 默认 无

使用Mysql

项目适配msql,但默认配置是postgres,如果使用mysql,需要改以下配置

  • pom 中添加Mysql 驱动依赖 mysql-driver
  • 配置文件中的spring.datasource.dynamic.datasource 更改为mysql
  • 全局配置文件中的spring.jpa.properties.hibernate.dialect 更改为mysql
  • generator.database-type 更改为mysql

新增功能列表

  • admin重置/修改普通用户密码
  • 安全拦截配置更改到菜单中
  • 支持生成excel模版和上传excel批量导入
  • 生成代码时可选择生成菜单
  • 配置GitLab CI/CD
  • 集成minio
  • 可动态配置的资源存储
  • 支持图片上传及base64图片上传
  • 支持mybatis-plus
  • 自定义上传头像
  • websocket消息通知
  • 支持打包为docker镜像
  • 多数据源支持
  • redis-utils支持lset,zset,geo方法
  • 可动态配置获取IP地址
  • 升级为使用knife4j
  • 支持离线导出接口文档
  • 更丰富的权限划分(基础的菜单权限)
  • 增加简单CMS功能
  • RSA密码加密解密分不同环境的配置
  • 使用p6spy更高效的记录日志
  • validation 参数校验
  • 集成Netty
  • 依赖和代码分离打包
  • postgres 生成代码
  • log注解可以记录api模块的日志
  • app的wgt包管理,配置多渠道,来管理不同的app
  • 多租户
  • 导入导出模版支持多表
  • 代码生成支持动态数据源
  • 增加oauth2的支持(单独分支)
  • 支持工作流

技术选型

  • 核心框架:SpringBoot
  • ORM框架:Mybatis
  • 任务调度:Spring Task + Quartz
  • 权限安全:Spring Security
  • 网页即时通讯:Netty(WebSocket)
  • 连接池:Druid(阿里开源)
  • 日志处理:SLF4J(日志门面框架)、logback
  • 缓存处理:Redis
  • Excel表处理:POI+EasyExcel
  • 在线文档:Knife4j
  • 实体转换:mapstruct

贡献者列表

感谢以下伙伴的付出(排名不分先后)

主要特性

  • 使用最新技术栈,社区资源丰富。
  • 高效率开发,代码生成器可一键生成前后端代码
  • 支持数据字典,可方便地对一些状态进行管理
  • 支持接口限流,避免恶意请求导致服务层压力过大
  • 支持接口级别的功能权限与数据权限,可自定义操作
  • 自定义权限注解与匿名接口注解,可快速对接口拦截与放行
  • 对一些常用地前端组件封装:表格数据请求、数据字典等
  • 前后端统一异常拦截处理,统一输出异常,避免繁琐的判断
  • 支持在线用户管理与服务器性能监控,支持限制单用户登录
  • 支持运维管理,可方便地对远程服务器的应用进行部署与管理
  • 支持多数据源,可以同时连接多个不同的数据库
  • 支持离线api文档下载,方便传输接口文档
  • 支持websocket消息个性推送,安全加密传输
  • 集成CMS文章发布,采用更高效好用的编辑器,让文章管理变得更简单
  • 支持docker镜像发布运行
  • 可动态更换minio、七牛云等存储管理服务,支持个性化上传文件
  • 项目同时兼容jpa和mybatis,使开发人员的选择变得更多,不再有选择焦虑症
  • 支持各模块的批量上传和下载功能
  • 已适配gitlab-runner,做CI/CD的自动部署,多元化配置

系统功能

  • 用户管理:提供用户的相关配置,新增用户后,默认密码为123456
  • 角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限
  • 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单
  • 部门管理:可配置系统组织架构,树形表格展示
  • 岗位管理:配置各个部门的职位
  • 字典管理:可维护常用一些固定的数据,如:状态,性别等
  • 系统日志:记录用户操作日志与异常日志,方便开发人员定位排错
  • SQL监控:采用druid 监控数据库访问性能,默认用户名admin,密码123456
  • 定时任务:整合Quartz做定时任务,加入任务日志,任务运行情况一目了然
  • 代码生成:高灵活度生成前后端代码,减少大量重复的工作任务
  • 邮件工具:配合富文本,发送html格式的邮件
  • 七牛云存储:可同步七牛云存储的数据到系统,无需登录七牛云直接操作云数据
  • 支付宝支付:整合了支付宝支付并且提供了测试账号,可自行测试
  • 服务监控:监控服务器的负载情况
  • 运维管理:一键部署你的应用
  • 存储资源管理:管理minio、七牛云、阿里云OSS
  • 文章列表:内置功能强大的高效编辑器,提高书写速度,集成了文件上传和审核功能。
  • 栏目管理:管理文章的栏目,可以随心配置栏目

使用教程

官方文档

see https://el-admin.vip/

生产环境注意事项

需要修改以下配置

  1. 修改RSA的公钥和私钥
  2. 修改新增用户的默认密码配置
  3. 修改前端默认登录的账号密码
  4. 关闭swagger
  5. 修改jwt时效时间,尽量缩短
  6. 如使用minio, 请更改minioAccess Policycustom,关闭s3:ListBucket https://blog.remember5.top/minio#acc1c14cfe75498e9ffc06e4eb21802e

安全事项:

  1. 禁止携带服务器,插件等明文信息在接口中

FAQ

  1. could not initialize proxy - no Session
  • 在@OneToMany的参数中使用fetch=FetchType.EAGER
  • 在application.properties的配置文件中新增spring.jpa.open-in-view=true
  • 在spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true可以解决lazy失效问题
  1. 适配问题
  • 经过测试,Navicat(16.0.9)中Postgres(140002) to Mysql(5.7.28) 会有Bool格式转换成Varchar(5)的情况
  • 适配mysql的方案,修改pg-bool 为 pg-int 0=false 1=true 同时 mysql 也更改tinyint为0=false 1=true

About

二次开发的eladmin

http://eladmin.remember5.top

License:Apache License 2.0


Languages

Language:Java 78.0%Language:PLpgSQL 17.6%Language:FreeMarker 4.4%Language:Shell 0.0%