Skip to content

🔥🔥🔥AirPower4J是一个基于 Java17、SpringBoot3.x、JPA&MySQL 的后端开发脚手架,其中包含了一些 RBAC、请求验证、CURD封装、异常处理、多租户SaaS、加解密与安全、WebSocket等模块,以满足日常开发的快捷、稳健、标准化等要求。

License

Notifications You must be signed in to change notification settings

HammCn/AirPower4J

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

4J

GitHub / Gitee / CHANGELOG / Maven

📖 一、这是个什么项目

为了满足开发标准化、工程化、系统化等等需求,我们设计并开发了一个基于 Java17SpringBoot3.xJPA&MySQL 的后端开发脚手架,其中包含了一些 RBAC请求验证CURD封装异常处理多租户SaaS加解密与安全WebSocket等模块,以满足日常开发的快捷、稳健、标准化等要求。

当然,

如果你对全栈感兴趣,也可以和我们的 AirPower4TGithub/Gitee) 一起玩耍,AirPower4T 是一个基于 Vue3/TypeScript/ElementPlus/Vite 等技术栈的一个基础开发脚手架,AirPower4JAirPower4T 的联合可以为你的全栈之路增加另外一份很不一样的开发体验。

🔑 二、如何使用(初始化)?

通过我们提供的 AirPowerJavaStarter 项目来完成 AirPower4J 宿主项目的初始化:

GitHub / Gitee

💐 三、项目架构

1. 环境变量说明

我们使用了 JPA 的自动初始化数据库 ddl-auto: create-drop 模式,所以你在此项目中看不到SQL文件。

所以在初始化代码库完成后只需要先创建数据库,并设置 utf8mb4_unicode_ci 字符集。

接下来在环境变量中配置 ddl-auto: create-drop 即可。

请注意,生产环境请勿使用这种方式。

2. 基本架构说明

我们使用标准的 Controller/Service/Repository 架构,原则上不涉及 EO/VO/DTO 等,整个项目使用 Entity 作为数据结构。

一些比较特殊的需求除外。

3. 注解

我们提供了一系列的注解:

3.1 @ApiController

标记为控制器方法,等同于 @RequestMapping + @RestController 的整合。

3.2 @Description

类或属性的文案,将显示在错误信息、验证信息等处。

3.3 @Desensitize@DesensitizeExclude

标记脱敏字段和不脱敏的接口。

3.4 @ExcelColumn

标记为Excel导出列,可配置导出列的数据类型。

3.5 @ReadOnly@Exclude@Expose

标记列在指定的过滤器下暴露或者过滤。可为属性标记 @ReadOnly 表示该属性不参与控制器修改。

3.6 @Filter

标记过滤器,3.5 中的规则可使用此类过滤器进行过滤或者暴露。

3.7 @Extends

标记控制器需要从父类控制器中继承或排除哪些方法。

3.8 @Search

标记属性参与搜索,可配置为模糊匹配、精确匹配、相等。

3.9 @Dictionary

标记为字典属性,可使用下方 4 中的枚举字典接口的实现类。

4. 枚举字典

枚举字典需要实现 IDictionary 接口,即可使用 3.9 中的注解对属性进行标记,会自动进行判断和翻译。

5. Root 系类超类

所有参与API数据交互的部分都需要继承 RootModel, 一切需要入库的数据都需要继承 RootEntity

所有控制器均需要继承 RootController,其中,如果是数据库相关的控制器,需要继承 RootEntityController

6. 自定义异常

自定义异常需要实现 IException 接口,即可使用异常的快捷抛出等方法。

7. 标准树

实现了 ITree 的类都可实现标准的树结构,可使用 TreeUtil 的一系列方法。

8. 系统配置

ServiceConfigCookieConfigWebSocketConfig 等可以保存一些基础的服务配置,可通过环境变量注入。

9. Utils

提供了大量的工具包以供使用,可以查看 cn.hamm.airpower.util 包下的类,也可以直接使用 Utils.getXXX() 直接获取工具类使用。

🛎 四、问题反馈与建议

如果你有什么疑问或者问题,你也可以加入开发者交流QQ群(555156313) 进行咨询,当然,我们更建议你发起 Github issue / Gitee issue

⏰ 五、Enjoy it

好了, 那么接下来你可以愉快地开发了, 如果你有什么建议或者意见, 可以在本仓库中提交你的 issues, 你可以为这个依赖库进行 添砖加瓦!

☕️Java: 加瓦? 什么Java?

🎱 六、服务中的企业/用户

AirPower4J 正在为以下的公司/用户提供技术支持:

  • 杭州某财税网络科技有限公司

  • 重庆某工业互联网科技有限公司

如果你的公司/企业正在使用我们的服务,欢迎通过 Issues 提交,我们将在上面的列表中列出。


ATTENTION: Contributor list is just for fun!!!

About

🔥🔥🔥AirPower4J是一个基于 Java17、SpringBoot3.x、JPA&MySQL 的后端开发脚手架,其中包含了一些 RBAC、请求验证、CURD封装、异常处理、多租户SaaS、加解密与安全、WebSocket等模块,以满足日常开发的快捷、稳健、标准化等要求。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages