About this project

AirPower4J is a backend development scaffold maintained by AirPowerTeam, built on Java 17, Spring Boot 3.x, JPA, and MySQL, targeting rapid standardized development for daily enterprise-level backends. Core modules include RBAC permissions, request parameter validation, CURD wrappers, unified exception handling, multi-tenant SaaS support, encryption/decryption and security, and WebSocket. The project adopts the standard Controller Service Repository layering, and in principle uses Entity as the data structure to reduce EO VO DTO conversions. It provides a set of development annotations: Api is used to mark REST controllers, Description is used for error and validation messages, Desensitize and DesensitizeIgnore are used for field desensitization, Export is used for export column configuration, ReadOnly restricts property modification, Extends controls method inheritance, Search supports exact or fuzzy search, and Dictionary associates enum dictionaries. Enum dictionaries need to implement the IDictionary interface to enable automatic translation. Data models need to inherit RootModel to participate in API interactions, and persistent entities inherit RootEntity. Controllers need to inherit ApiController, data-related controllers inherit CurdController, and can work with CurdService and ICurdRepository to implement standard CRUD operations. Custom exceptions implement the IException interface. Classes that implement ITree can use TreeUtil to build standard tree structures. System configuration is injected through environment variables under the airpower prefix in application-xxx.yml. Utility classes are centralized in cn.hamm.airpower.core and can be obtained through Utils.getXXX. Database initialization uses JPA ddl-auto create-drop, and a database with the utf8mb4_0900_ai_ci character set needs to be created manually; it is not recommended for production environments. Dependencies are introduced through the Maven parent POM cn.hamm:airpower, with airpower-core as the core dependency. The project can also be used with the @airpower/web Vue3 TypeScript ElementPlus Vite frontend scaffold for full-stack development. Issue feedback can be provided through GitHub Gitee Issue or QQ group 555156313.