2.9 KiB
2.9 KiB
AGENTS.md - rnb Backend
Build & Run
- Maven profiles:
dev(default),prod - Build:
mvn clean package -DskipTests -Pdev(or-Pprod) - Run locally: Execute
RnBApplication.main()(port 10800) - Docker:
docker-compose -f docker/docker-compose.yml -p youlai-boot up -d(MySQL 3306, Redis 6379, MinIO 9000/9001, XXL-Job 8080)
Key Configuration
- Active profile: Set via
spring.profiles.active(default:prodin application.yml) - Dev DB:
localhost:3306/rnb(user: root, pass: 168soft.xyz) - Dev Redis:
localhost:16378(pass: CZwy16378, db: 2) - Prod DB:
localhost:3308/rnb - Prod Redis:
localhost:6379(no password) - JWT secret: Must be ≥32 chars (see
security.session.jwt.secret-keyin profile yml)
Project Structure
src/main/java/com/rnb/
├── common/ # Shared: annotation, base, constant, enums, exception, model, result, util
├── config/ # Auto-configuration, property binding
├── core/ # Core: aspect (log, repeat-submit), filter (request-log, rate-limit), handler (data-permission, data-fill), security
├── modules/ # Business modules: member, order, product
├── shared/ # Shared modules: auth, file, codegen, mail, sms, websocket
└── system/ # System module: controller, converter, model (bo/dto/entity/form/query/vo), mapper, service
Code Generation
- MyBatis-Plus Generator: Run
SystemCodeGenerator.main()(prompts for table names, usessys_prefix) - Templates:
src/test/resources/templates/*.vm(backend),codegen.yml(frontend) - Output:
src/main/java/com/rnb/system/...,src/main/resources/mapper/...
Testing
- Tests skipped by default:
maven-surefire-pluginhas<skip>true</skip> - Run single test:
mvn test -Dtest=ClassName -DfailIfNoTests=false
Common Commands
# Build dev
mvn clean package -DskipTests -Pdev
# Build prod
mvn clean package -DskipTests -Pprod
# Run with dev profile (from IDE or)
mvn spring-boot:run -Pdev
# Start infra only
cd docker && docker-compose -f docker-compose.yml -p youlai-boot up -d
# Stop infra
cd docker && docker-compose -f docker-compose.yml -p youlai-boot down
Notable Conventions
- Table prefix:
rb_(MyBatis-Plus config) - Logic delete: field
isDeleted(1=deleted, 0=active) - Security modes: JWT (stateless) or Redis-token (stateful, multi-login control)
- API docs: Knife4j at
/doc.html(dev),/swagger-ui.html(prod) - Port: 10800 (both dev/prod)
- Lombok + MapStruct: Use
lombok-mapstruct-bindingfor compatibility
Gotchas
- Dockerfile expects
target/youlai-boot.jarbut Maven buildstarget/rnb-<version>-dev.jar→ rename or adjust Dockerfile - DB connection validated on startup (app exits if fails)
application.ymlimportscodegen.ymlfor code generator config- Tests require DB/Redis running (use docker-compose)