# Technology Stack ## Backend ### Core Framework - Java 17+ (JDK 17/21) - Spring Boot 3.5.x - Maven (multi-module project) ### Database & ORM - MySQL 5.7/8.0+ (primary), also supports PostgreSQL, Oracle, SQL Server, DM, KingBase, OpenGauss - MyBatis Plus 3.5.x (ORM) - Druid (connection pool & monitoring) - Dynamic Datasource (multi-datasource/read-write splitting) ### Cache & Messaging - Redis + Redisson - Message queues: Redis Stream, RabbitMQ, RocketMQ, Kafka ### Security & Auth - Spring Security + Token + Redis - SSO single sign-on support - Multi-tenant architecture ### Workflow - Flowable 7.x (BPM engine) ### Scheduling - Quartz (distributed job scheduling) ### API Documentation - Springdoc + Knife4j (Swagger UI) ### Code Quality - Lombok (boilerplate reduction) - MapStruct (object mapping) - JUnit 5 + Mockito (testing) ## Frontend (Vue3 Admin) ### Core - Vue 3.5.x + TypeScript - Vite 5.x (build tool) - Element Plus 2.x (UI framework) - Pinia (state management) - Vue Router 4.x ### Build & Quality - pnpm (package manager) - ESLint + Prettier + Stylelint - UnoCSS (atomic CSS) ## Common Commands ### Backend ```bash # Install dependencies and build all modules mvn clean install -DskipTests # Run backend server (development) ./start-backend.sh local # Or manually with Maven cd yudao-server mvn spring-boot:run -Dspring-boot.run.profiles=local # Run tests mvn test # Package for production mvn clean package -DskipTests ``` ### Frontend (yudao-ui/yudao-ui-admin-vue3) ```bash # Install dependencies pnpm install # Development server pnpm dev # Build for production pnpm build:prod # Lint code pnpm lint:eslint pnpm lint:format ``` ## Server Ports - Backend API: `http://localhost:48080` - API Documentation: `http://localhost:48080/doc.html` - Druid Monitor: `http://localhost:48080/druid`