Об этом проекте

AirPower4J — серверный каркас разработки, поддерживаемый AirPowerTeam, построенный на Java 17, Spring Boot 3.x, JPA и MySQL, предназначенный для быстрой стандартизированной серверной разработки в повседневных корпоративных задачах. Основные модули включают RBAC-права доступа, валидацию параметров запроса, обёртку CRUD, единую обработку исключений, поддержку мультиарендного SaaS, шифрование и дешифрование, а также безопасность и WebSocket. Проект использует стандартное разделение слоёв Controller Service Repository и в принципе использует Entity как структуру данных, чтобы сократить преобразования EO VO DTO. Предоставляется набор аннотаций для разработки: Api используется для пометки REST-контроллеров, Description — для текстов ошибок и валидации, Desensitize и DesensitizeIgnore — для маскирования полей, Export — для настройки экспортируемых колонок, ReadOnly ограничивает изменение свойств, Extends управляет наследованием методов, Search поддерживает точный или нечёткий поиск, Dictionary связывает перечисления со словарями. Перечисления словарей должны реализовывать интерфейс IDictionary для автоматического перевода. Модели данных должны наследовать RootModel для участия во взаимодействии через API, а персистентные сущности — наследовать RootEntity. Контроллеры должны наследовать ApiController, контроллеры данных — наследовать CurdController и могут совместно с CurdService и ICurdRepository реализовывать стандартные операции создания, чтения, изменения и удаления. Пользовательские исключения реализуют интерфейс IException. Классы, реализующие ITree, могут использовать TreeUtil для построения стандартной древовидной структуры. Системная конфигурация внедряется через переменные окружения с префиксом airpower в application-xxx.yml. Утилитарные классы сосредоточены в cn.hamm.airpower.core и доступны через Utils.getXXX. Инициализация базы данных использует JPA ddl-auto create-drop, необходимо вручную создать базу данных с набором символов utf8mb4_0900_ai_ci, в производственной среде использовать не рекомендуется. Зависимости подключаются через родительский Maven POM cn.hamm:airpower, основная зависимость — airpower-core. Проект также может работать вместе с фронтенд-каркасом @airpower/web на Vue3 TypeScript ElementPlus Vite для полностековой разработки. Сообщить о проблемах можно через GitHub Gitee Issue или QQ-группу 555156313.