给中高级Java的任务目标
基于 Java + Spring Boot 搭建一个通用的权限系统架构,支持多租户隔离,模块化设计,采用 interface
和 service
层次结构,能够快速适配不同项目需求。
任务内容
1. 项目基础架构搭建
- 使用 Spring Boot 3.x,整合 MyBatis 或 JPA,采用标准的分层设计。
- Controller 层:暴露 API 接口。
- Service 层:封装业务逻辑,实现核心功能。
- Exception 层:全局异常处理机制,统一返回格式。
- 其他层...
2. 数据库设计与多租户支持
- 设计基础表结构,包括租户表、用户表、角色表、权限表等。
- 所有核心业务表(如用户、角色、权限等)必须增加
tenant_id
字段,以实现租户隔离。 - 实现
tenant_id
自动注入机制,通过 MyBatis-Plus 插件或自定义拦截器,确保每次查询都带上租户标识。
3. 权限系统设计
- 使用 Spring Security 或 Sa-token 和 JWT 实现认证与授权。
- 设计
UserService
、RoleService
、PermissionService
等核心服务接口,提供权限管理相关功能。 - 使用基于角色(RBAC)的权限控制,每个接口都需要通过
@PreAuthorize
或自定义注解进行权限控制。
4. 接口与服务层
UserService
:用户管理接口,包含用户注册、登录、查询、修改等功能。RoleService
:角色管理接口,包含角色的增删改查,角色与权限关联。PermissionService
:权限管理接口,支持动态菜单和按钮权限的增删改查。TenantService
:租户管理接口,支持租户的创建、停用等管理功能。
5. 核心功能开发
- 登录认证:实现基于 JWT 的登录接口,确保支持多租户登录。
- 角色与权限管理:实现角色与权限的增删改查,并与用户进行关联。
- 提供 Swagger API 文档,清晰描述各接口功能。
6. 交付要求
- 提交完整的源代码,包括
Controller
、Service
、Repository
、Exception
层等所有代码。 - 提供数据库建表脚本或初始化脚本。
- 提供 Swagger 文档,描述所有对外接口(包括请求参数、返回结果、错误码等)。
- 提供简单的部署文档,确保系统可以快速部署到生产环境。
时间安排
阶段 | 任务内容 |
---|---|
1 | 搭建基础框架与数据库设计,定义 Service 接口与实现类 |
2 | 实现多租户支持,通过 tenant_id 自动注入查询 |
3 | 实现认证与授权,设计并实现 UserService 、RoleService |
4 | 核心模块开发完成(用户、角色、权限管理,整合 Swagger) |
5 | 编写文档并完成项目交付 |