GitHub / Gitee / CHANGELOG / Maven
为了满足开发标准化、工程化、系统化等等需求,我们设计并开发了一个基于 Java17、SpringBoot3.x、JPA&MySQL 的后端开发脚手架,其中包含了一些 RBAC、请求验证、CURD封装、异常处理、多租户SaaS、加解密与安全、 WebSocket等模块,以满足日常开发的快捷、稳健、标准化等要求。
当然,
如果你对全栈感兴趣,也可以和我们的
AirPower4T
(Github/Gitee) 一起玩耍,AirPower4T
是一个基于Vue3
/TypeScript
/ElementPlus
/Vite
等技术栈的一个基础开发脚手架,AirPower4J
和AirPower4T
的联合可以为你的全栈之路增加另外一份很不一样的开发体验。
通过我们提供的 AirPowerJavaStarter
项目来完成 AirPower4J 宿主项目的初始化:
我们使用了 JPA
的自动初始化数据库 ddl-auto: create-drop
模式,所以你在此项目中看不到SQL文件。
所以在初始化代码库完成后只需要先创建数据库,并设置 utf8mb4_unicode_ci
字符集。
接下来在环境变量中配置 ddl-auto: create-drop
即可。
请注意,生产环境请勿使用这种方式。
我们使用标准的 Controller
/Service
/Repository
架构,原则上不涉及 EO
/VO
/DTO
等,整个项目使用 Entity
作为数据结构。
一些比较特殊的需求除外。
我们提供了一系列的注解:
标记为控制器方法,等同于 @RequestMapping
+ @RestController
的整合。
类或属性的文案,将显示在错误信息、验证信息等处。
标记脱敏字段和不脱敏的接口。
标记为Excel导出列,可配置导出列的数据类型。
标记列在指定的过滤器下暴露或者过滤。可为属性标记 @ReadOnly
表示该属性不参与控制器修改。
标记过滤器,3.5
中的规则可使用此类过滤器进行过滤或者暴露。
标记控制器需要从父类控制器中继承或排除哪些方法。
标记属性参与搜索,可配置为模糊匹配、精确匹配、相等。
标记为字典属性,可使用下方 4
中的枚举字典接口的实现类。
枚举字典需要实现 IDictionary
接口,即可使用 3.9
中的注解对属性进行标记,会自动进行判断和翻译。
所有参与API数据交互的部分都需要继承 RootModel
, 一切需要入库的数据都需要继承 RootEntity
。
所有控制器均需要继承 RootController
,其中,如果是数据库相关的控制器,需要继承 RootEntityController
。
自定义异常需要实现 IException
接口,即可使用异常的快捷抛出等方法。
实现了 ITree
的类都可实现标准的树结构,可使用 TreeUtil
的一系列方法。
ServiceConfig
、CookieConfig
、WebSocketConfig
等可以保存一些基础的服务配置,可通过环境变量注入。
提供了大量的工具包以供使用,可以查看 cn.hamm.airpower.util
包下的类,也可以直接使用 Utils.getXXX()
直接获取工具类使用。
如果你有什么疑问或者问题,你也可以加入开发者交流QQ群(555156313
)
进行咨询,当然,我们更建议你发起 Github issue / Gitee issue
好了, 那么接下来你可以愉快地开发了, 如果你有什么建议或者意见, 可以在本仓库中提交你的 issues, 你可以为这个依赖库进行 添砖加瓦!
☕️Java: 加瓦? 什么Java?
AirPower4J 正在为以下的公司/用户提供技术支持:
-
杭州某财税网络科技有限公司
-
重庆某工业互联网科技有限公司
如果你的公司/企业正在使用我们的服务,欢迎通过
Issues
提交,我们将在上面的列表中列出。
ATTENTION: Contributor list is just for fun!!!