基于Spring Boot的现代化权限管理系统
LazyAdmin 2.0 是一个现代化的权限管理系统,基于Spring Boot 2.7.x开发,提供了完整的RBAC权限控制、JWT认证、RESTful API等功能。项目已全面升级,采用最新的技术栈和最佳实践。
- Spring Boot 2.7.18 - 现代化的Spring框架
- JDK 17 - 最新的LTS版本
- MyBatis Plus 3.5.4 - 强大的ORM框架
- Spring Security 5.7 - 企业级安全框架
- JWT - 无状态认证
- Redis - 高性能缓存
- MySQL 8.0 - 现代化数据库
- Docker - 容器化部署
- JWT认证 - 无状态的token认证
- BCrypt加密 - 安全的密码加密算法
- RBAC权限控制 - 基于角色的访问控制
- 细粒度权限 - 精确到按钮级别的权限控制
- 安全配置 - CORS、XSS、CSRF防护
- 用户管理 - 完整的用户生命周期管理
- 角色管理 - 灵活的角色权限分配
- 权限管理 - 树形权限结构管理
- 操作日志 - 完整的操作审计功能
- 在线用户 - 实时用户状态监控
- RESTful API - 标准的REST接口设计
- Swagger文档 - 自动生成API文档
- 统一响应 - 标准化的响应格式
- 全局异常处理 - 优雅的错误处理
- 参数验证 - 完善的参数校验机制
- Docker支持 - 完整的容器化部署
- 健康检查 - 应用状态监控
- 日志管理 - 结构化日志输出
- 监控指标 - Actuator端点监控
- 负载均衡 - Nginx反向代理
├── 前端层 (RESTful API)
│ ├── 认证授权
│ ├── 参数验证
│ └── 响应格式化
├── 业务层 (Service)
│ ├── 用户管理
│ ├── 角色权限
│ └── 系统日志
├── 持久层 (MyBatis Plus)
│ ├── 数据访问
│ ├── 事务管理
│ └── 数据缓存
└── 基础设施
├── Spring Security
├── JWT
├── Redis
└── MySQL
注意: 以上截图为v1.0版本界面,v2.0版本已全面升级为RESTful API架构,建议使用现代化前端框架(如Vue.js、React等)进行界面开发。
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 6.0+
- Docker (可选)
- 克隆项目
git clone https://github.com/melonlee/LazyAdmin.git
cd LazyAdmin- 创建数据库
CREATE DATABASE lazy_admin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 导入数据
mysql -u root -p lazy_admin < database/lazy_admin_v2.sql- 修改配置
# application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/lazy_admin
username: root
password: your_password
redis:
host: localhost
port: 6379- 启动应用
./mvnw spring-boot:run- 访问应用
- 应用地址: http://localhost:8080/admin
- API文档: http://localhost:8080/admin/swagger-ui.html
- 监控端点: http://localhost:8080/admin/actuator
- 构建镜像
docker build -t lazy-admin:2.0 .- 启动服务
docker-compose up -d- 查看状态
docker-compose psLazyAdmin/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/lazy/admin/
│ │ │ ├── config/ # 配置类
│ │ │ ├── controller/ # 控制器
│ │ │ ├── entity/ # 实体类
│ │ │ ├── mapper/ # 数据访问层
│ │ │ ├── service/ # 业务逻辑层
│ │ │ ├── security/ # 安全相关
│ │ │ └── util/ # 工具类
│ │ └── resources/
│ │ ├── application.yml # 配置文件
│ │ └── mapper/ # MyBatis映射
│ └── test/ # 测试代码
├── database/ # 数据库脚本
├── docker-compose.yml # Docker编排
├── Dockerfile # Docker镜像
├── nginx/ # Nginx配置
└── README.md # 项目文档
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/lazy_admin
username: root
password: password
hikari:
maximum-pool-size: 20
minimum-idle: 5spring:
redis:
host: localhost
port: 6379
password:
database: 0
lettuce:
pool:
max-active: 8
max-idle: 8security:
jwt:
secret: LazyAdminJwtSecretKey2024
expiration: 604800000 # 7天
header: Authorization
prefix: Bearer./mvnw test./mvnw verify./mvnw jacoco:report启动应用后,访问 http://localhost:8080/admin/swagger-ui.html 查看完整的API文档。
POST /api/auth/login- 用户登录POST /api/auth/logout- 用户登出POST /api/auth/refresh- 刷新token
GET /api/users- 获取用户列表POST /api/users- 创建用户PUT /api/users/{id}- 更新用户DELETE /api/users/{id}- 删除用户
GET /api/roles- 获取角色列表POST /api/roles- 创建角色PUT /api/roles/{id}- 更新角色DELETE /api/roles/{id}- 删除角色
GET /api/permissions- 获取权限列表POST /api/permissions- 创建权限PUT /api/permissions/{id}- 更新权限DELETE /api/permissions/{id}- 删除权限
curl http://localhost:8080/admin/actuator/healthcurl http://localhost:8080/admin/actuator/infocurl http://localhost:8080/admin/actuator/metrics- 使用Google Java代码风格
- 单元测试覆盖率不低于80%
- 所有公共方法必须有JavaDoc注释
feat: 新功能
fix: 错误修复
docs: 文档更新
style: 代码格式化
refactor: 代码重构
test: 测试相关
chore: 构建工具或辅助工具
- 用户信息缓存 (30分钟)
- 权限信息缓存 (60分钟)
- 字典数据缓存 (24小时)
- 合理的索引设计
- 分页查询优化
- 连接池配置优化
- 环境准备
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose- 配置环境变量
# 创建.env文件
cat > .env << EOF
MYSQL_ROOT_PASSWORD=your_strong_password
MYSQL_PASSWORD=your_app_password
REDIS_PASSWORD=your_redis_password
JWT_SECRET=your_jwt_secret_key
EOF- 启动服务
docker-compose -f docker-compose.prod.yml up -d推荐使用Prometheus + Grafana进行监控。
- 🚀 全面升级到Spring Boot 2.7.x
- 🔧 升级JDK到17版本
- 🔐 替换Shiro为Spring Security
- 💾 升级MyBatis Plus到3.5.x
- 🐳 添加Docker支持
- 📊 集成Swagger API文档
- 🔍 添加Actuator监控
- 🧪 完善单元测试
- 📝 更新项目文档
- 🎉 项目初始版本
- 基于SSM框架
- 基础的权限管理功能
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
本项目采用 Apache License 2.0 许可证。详情请查看 LICENSE 文件。
感谢所有贡献者和开源社区的支持!
- 作者:Melon
- 项目地址:https://github.com/melonlee/LazyAdmin








