JHipster7 国内落地方案蓝图发布,适合国内开发者的源代码生成器

来源: 投稿
作者: wangxinxx
2021-05-19

JHipster7已经发布,做为一款功能比较齐全的代码生成器,她在国外有很多拥趸,但其部分特性不完全适合国内,目前国内用户使用的功能应该仅集中在后端Java生成方面。

为了进一步适合国内开发人员,制作了些蓝图(Blueprint)。除了JHipster支持的功能以外,主要增加功能如下:

1、增强用户、角色、API权限、菜单权限。

    1.1 用户增加mobile字段,可以使用手机登录。

    1.2 原用角色(Authority),仅有name一个属性,现在进行了增强,包括名称、代码、描述、是否显示等属性。

    1.3权限管理由单一的权限(Authority),扩展为Authority(角色)、API权限、菜单权限(菜单、按钮等)组成,更适合实际开发的需要。角色包含多个API权限和菜单权限。

2、官方仅支持Spring-Data-Jpa,本蓝图增加了Mybatis的支持,毕竟国内Mybatis开发占用半壁江山(谦虚的比例)。

    2.1 基于Mybatis-plus实现,支持全部特性。

    2.2 为进一步融合Spring-Data-Jpa的思想,在Mybatis-plus的基础上增加了Diboot的支持,仅需要定义几个注解,实现与Jpa关系注解相同的效果。关联关系的处理更简单。

    2.3JHipster的Filter特性非常好,能够快速实现复杂的检索条件支持,前后端统一。本蓝图的Mybatis也支持类似这样的用法。

    如:xyz.equals=someValue、xyz.contains=something、xyz.greaterThan=someValue,这些条件可以组合使用(and)。

    在mapper.xml,test="abc !=null and abc !=''",这样的用法再也用不到了。

3、前台页面千变万化,确实没有银弹,但国内前端后台的方案非常集中,AntDesignPro,NG-ZORRO(Alain),AntDesign Vue Pro,Element Admin等后台方案非常主流。此蓝图增加了这4个后台方案的支持,您可以在生成的时候自己选择。目前AntDesign Vue Pro方案的成熟度最高,其他在测试阶段,后续将会不断补充完善。无论你喜欢哪一个,这里可能都有答案,等待你挖掘。

  3.1 全部都基于TypeScript。毕竟官方推荐这个。

  3.2 AntDesipgn Pro基于官方实现,主题一致,代码风格一致。

  3.3 NG-ZORRO基于Alain实现,目前以基本功能为主,后续不断加强。

  3.4 AntDesign Vue Pro采用官方方案,目前完善度最高,采用VXE-Table实现列表功能,可动态定制显示、编辑组件的渲染。使用K-Form-Design实现表单的在线自定义功能。

  3.3 Element Admin为最后增加的方案,也在不断完善中,采用VXE-Table实现列表功能,可动态定制显示、编辑组件的渲染。使用Form-Generator实现表单的在线自定义功能。

4、根据JHipster官方的在线生成系统,制作了中英文双语在线生成系统,并提供本文相关的非JHipster官方功能的选项供用户选择。

在线生成系统除了支持直接下载zip压缩文件外,更增加GitHub仓库的创建,最可喜的是增加了Gitee的仓库创建功能,再也不用无法连接GitHub而担心了。

5、在线生成系统集成了官方的jdl-studio在线JDL文件设计功能。同时多个自定义注解,实现更多的特性。

  自定义注解多达十几个,例如:

  • @skipMenu:实体注解,相应实体将不会生成菜单。
  • @ExtendData:实体注解,表字段可扩展。
  • @skipComponent:实体注解,可取消指定组件的生成restController,service等,防止覆盖你修改的文件。
  • @configField(editInList-hideInList-hideInForm-sortable):字段注解,列表编辑、列表中隐藏、表单中隐藏,可排序。editInList-hideInList-hideInForm可加入关系注解
  • @createdById:字段注解 创建者Id,Long类型或UUID类型,根据定义的User Entity主键确定。

6、自动从实现和字段中提取中文注释内容,这样注释除了做为数据和实体的说明以外,还可以用在菜单、字段标题上,一次定义,多处使用。

7、元模型管理功能,JHipster使用JSON格式或JDL完整的保留了实体的信息,但是他们对线上系统来说是静态内容,无法利用,也不能动态改变。
元模型保存了所有实体的信息和他们之间的关系,以及前端UI样式的部分信息。这些信息可以在线上运行阶段进行修改和定制。能够部分的实现"数据+配置=系统"这一思想。

  7.1 元模型信息中包括列表定义功能,可设置列表中某列是否显示、是否可编辑、使用什么组件显示和编辑,可编辑的列在编辑后立即保存到服务器。

  7.2 元模型中定义为列表不显示的列,在数据检索时也不会向数据库发送检索这个字段的SQL,减少对数据库性能的影响。

  7.3 单元格中的值可编辑为任何值,服务器都会保存,不会出现服务器不保存null的情况,你要保存什么值,它就保存什么值。没有xxxField != null这样的神奇判断。

  7.4 既然元模型保存了所有的实体和关联关系的信息,那么它们能不能在线拓展呢?答案是:能!!!。可能根据需要在实体上使用注解标注该实体是否可以拓展。能够拓展的实体,会根据持久化框架的选项,采用相应的形式拓展数据库的结构,让你的实体在线上也可以增加字段或关系。

  7.5 元模型中保存了所有列和关系的信息,自然就可能基于它实现表单的在线自定义,所以你可以随意在系统上线后根据需要调整表单的显示内容和格式,以及校验等功能。通过元模型可以实现多内容模型功能,如:CMS系统不同栏目,内容模型不同。

8、OSS功能是国内开发比较常用的功能了,此蓝图集成了OSS功能,支持国内多家提供商以及本地服务器保存文件功能。Aliyun OSS、minio OSS、qiniu OSS、tencent OSS。

9、SMS功能也是国内开发比较常用的功能了,此蓝图集成了SMS功能,支持国内多家提供商。Aliyun SMS、yunpian SMS、qiniu SMS、tencent SMS。

10、JHipster官方的中文或英文资料如何你感觉可能不理想的话,也可以参考本次翻译的内容,也许会有不一样的收获。地址:http://jhipster.huibozhixin.com/

11、近期马上推出的新特性包括:flowable工作流、大屏设计、公告通知等等。

12、还有......,我也不记得了,等着你挖掘吧。如何没有挖掘到的话怎么办?给作者提意见或建议呀!!!

13、对了,还没有地址呢,在线生成地址:http://jhonline.huibozhixin.com/

14、简单的上几张图吧:

展开阅读全文
41 收藏
分享
加载中
最新评论 (5)
开源吧
2021-05-19 21:45
0
回复
举报
2021-05-19 13:12
0
回复
举报
看到有人问下载地址,没有下载地址,使用JHipster提供的在线生成器,根据选择自定义生成。可同步gitee或github。地址:http://jhonline.huibozhixin.com/
2021-05-19 12:51
0
回复
举报
没看到说的这个蓝图在哪
2021-05-19 11:06
0
回复
举报
所以下载地址呢?
2021-05-19 11:02
0
回复
举报
更多评论
5 评论
41 收藏
分享
返回顶部
顶部