- Create User, Role, Permission entities with their relationships - Implement service interfaces and implementations for user system - Add controllers for User, Role, Permission, UserRole, and RolePermission - Include SQL schema files for the user system - Document project structure in CLAUDE.md This adds a complete RBAC (Role-Based Access Control) system with: - User entity for managing user accounts - Role entity for defining roles - Permission entity for defining permissions - UserRole entity for user-role relationships - RolePermission entity for role-permission relationships Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build & Run Commands
# Build the project
./mvnw clean package
# Run the application
./mvnw spring-boot:run
# Run all tests
./mvnw test
# Run a single test class
./mvnw test -Dtest=TestClassName
# Run a single test method
./mvnw test -Dtest=TestClassName#methodName
Project Overview
- Framework: Spring Boot 3.2.3 with Java 21
- ORM: MyBatis Plus 3.5.5
- Database: MySQL 8.0.33
- Cache: Redis (Spring Data Redis)
- API Docs: Swagger UI at
/swagger-ui.html - Auth: JWT (jjwt 0.11.5)
Architecture
Base package: icu.sunway.ai_spring_example
This project follows a layered architecture with MyBatis Plus:
| Layer | Location | Pattern |
|---|---|---|
| Controller | Controller/{EntityName}Controller/ |
One subdirectory per entity |
| Service | Service/ |
Interface I{Name}Service extends IService<Entity> |
| Service Impl | Service/Implements/ |
{Name}ServiceImpl extends ServiceImpl<Mapper, Entity> |
| Mapper | Mapper/ |
{Name}Mapper extends BaseMapper<Entity> |
| Entity | Entity/ |
Lombok + MyBatis Plus annotations |
| Config | Config/ |
CORS, Security, Redis, OpenAPI |
| Utils | Utils/ |
Utility classes |
Key Utilities
- ResponseUtils: Standard API responses -
ResponseUtils.success(data)/ResponseUtils.fail(message) - PageUtils: Pagination -
PageUtils.createPage(page, limit)returnsPage<T>for MyBatis Plus - RedisUtils: Redis operations (inject with
@Resource) - JsonUtils: JSON serialization -
JsonUtils.toJson()/JsonUtils.toObject() - ValidationUtils: Input validation (email, phone, URL, IP, password strength, etc.)
Configuration
- Copy
application-example.yamltoapplication.yamland fill in database/Redis credentials application.yamlis gitignored (contains sensitive data)- Uses dynamic multi-datasource (primary datasource named "master")
Security Notes
- Current
SecurityConfigis permissive (all requests allowed) - configure for production - Stateless session management configured for JWT authentication