Diboot

Diboot是一款开发平台,可以通过这款软件设计新的应用程序和web程序,软件提供基框架+高效工具,包括core基内核、IAM权限组件、file文件组件、scheduler定时组件、diboot-antd-admin、diboot-element-admin、devtools开发使用这些组件就可以快速配置程序开发方案,从而构建新的程序,您可以部署身份访问控制模块,可以部署文件处理模块,可以为程序添加定时任务,可以配置工作流方案,为用户添加功能模块提供更好的部署方式,结合开发实现CRUD完整功能生成、前端组件编排与生成、数据结构代码同步、一键生成后端代码、非覆盖式更新代码、自动SQL与索引!

相关推荐 软件介绍 下载地址
Diboot官方版v2.2.0 Dib是一款开发平台,可以通过这款软件设计新的应用程序和web程序,软件提供基框架+高效工具,包括ce基内核、IAM权限组件、file文件组件、schedule定时组件、dib-ad-admi、dib-eleme-admi、devls开发使用这些组件就可以快速配置程序开发方案,… 点击查看
AdonisJs官方版v5.1.4 AdisJs是一款web框架,可以通过这款框架快速设计新的应用程序,帮助用户快速开发新的软件,软件需要结合Nde.js使用,配置Nde.js到软件就可以开始创建项目,可以直接在软件创建API,也可以创建新的web程序,结合软件提供的路由、控制器、视图和模板、表格提交、… 点击查看
Yoga官方版v1.18.0 Yga提供布局功能,可以对页面内容布局,可以快速设计web页面布局方案,可以设计iOS布局方案,可以调整输入框布局方案,可以设置菜单栏布局,可以设置各项页面组件的高度、宽度、边距、边框,可以设置内容对齐,大部分常用的布局方式都可以在这款软件找到,帮助用户… 点击查看

Diboot软件功能

极简易用(引入依赖jar,配置参数后,即可随应用启动运行)

功能强大(数据结构与代码同步、前后端一键生成、前端面板组件编排)

配置灵活(可按需配置生成代码路径及启用`Lombok`、`Swagger`等)

代码标准(devtools标准化了数据结构定义与代码实现,降低成本)

支持多库(MySQL、MaaDB、ORACLE、SQLServer、PostgreSQL)

Diboot软件特色

单表与关联场景CRUD导入导出的完整功能全自动生成,无需手写代码

结合前端面板组件编排能力,覆盖更多场景的自动化生成

数据结构变更与代码联动同步,自动记录变更SQL、索引

一键生成代码&非覆盖式更新本地后端代码

配置很灵活(可按需配置生成代码路径,是否启用`Lombok`、`Swagger`等)

SQL与代码很标准(devtools标准化了数据结构定义与代码实现)

Diboot使用说明

diboot-IAM 使用说明

#1、引入依赖

或Gradle:

配置了数据库连接,初次启动时iam starter组件会自初始化,生成相关的表及初始数据。

如果使用diboot-devtools,还需要引入devtools相关依赖,可一键生成iam相关的contller。

注: iam初始化的密码为: admin/123456 ,启动成功后请及时修改密码。

#2、参数配置:

配置文件配置项:

3、认证与授权

登录/申请token(后端):

前端登录拿到token后缓存并将其加入每次请求的header中,属名为: thtoken

当token的有效期剩余不足1/4时,组件会自动生成新的token写入response的header中,属名同样为: thtoken。 前端response的header如果有新的thtoken,则替换本地的缓存值。

#4、BindPermission注解使用

支持在Contller的类及方法上添加,权限识别码支持类似Spng @RequestMapping注解的“类+方法”拼接功能, 方法上的注解支持自动鉴权,同时可被继承。如:

BindPermission注解支持自动提取需要认证的接口列表,提供给前端进行快捷绑定。

#5、Log作志注解使用

@Log 注解支持自动记录作志至iam_operation_log表,Log注解支持在RequestMapping方法上直接添加。

支持在Contller的方法上添加,如:

6、登录/注册/退出

登录:

退出:

注册

获取当前用户对象:

diboot-IAM: 身份认证组件

#1、扩展其他登录方式

默认的登录方式为:用户名密码,如需扩展其他登录方式:

创建你的认证凭证对象,继承自AuthCredential

实现AuthService接口,定义认证方式及接口实现

申请token替换为你的认证方式:

2、替换用户类型或扩展多种用户类型

默认的用户实体为IamUser,获取当前登录用户对象:

如果预置属如果不能满足业务场景需要,可替换用户为你的实体:

首先在登录的方法中,生成token前传入当前用户类型: (如果有多种用户类型共用登录接口,可以从前端登录页传入”用户类型值”)

获取用户对象相关代码改为:

或多种用户:

3、替换缓存Mar

组件默认缓存类为shi的内存缓存实现:MemoryConstrainedCacheMar,如果需要替换为redis等自定义缓存, 需要创建缓存实现类实现CacheMar接口 (可以参考MemoryConstrainedCacheMar的源码)。

#step1. 依赖spng-boot-starter-data-redis,并配置参数,初始化RedisTemplate

step2. 创建Redis缓存管理类继承自AbstractCacheMar,重写Cache。

实现shi的Cache接口:

step3. 配置shi的CacheMar为你的CacheMar缓存类实例

4. 自定义数据权限

某些场景下搜索查询需要绑定一些强制条件,用于数据权限控制,如只能查询本部门的数据。

#step1. 在需要数据权限控制的Entity中的字段上添加@DataAccessCheckpoint注解,指定CheckpointType。

示例代码:

step2. 实现DataAccessIntece接口,返回当前用户可访问的对应CheckpointType的合法ID

step3. Spng config类中配置Mybatis-plus数据权限,启用数据权限拦截

5. 将JWT的token实现改为无状态token

since v2.2 配置类中重新定义BasicHttpAuthenticationFilter,换成StatelessJwtAuthFilter。示例代码如下:

常见问题

diboot-iam-spng-boot-starter相关

#diboot支持Spng Boot哪些版本?

diboot 2.0.x 支持 Spng boot 2.2.x

diboot 2.1.x 支持 Spng boot 2.3.x

diboot 2.2.x 支持 Spng boot 2.4+

#IAM的后端代码在哪里?

IAM的后端基代码由devtools自动生成

配置好diboot组件依赖和devtools依赖

启动项目,进入devtools的组件初始化页面,选择core及IAM等组件,执行初始化

devtools将生成IAM基的代码到你配置的路径下

注:diboot-example (opens new window)中包含可供参考的后端示例:diboot-iam-example(IAM示例代码) 及diboot-online-demo(线上演示项目)。

#如何自定义jackson配置

diboot-core-starter中包含默认的HttpMessageConverters配置,启用jackson并做了初始化配置。 其中关键配置参数为:

如果该配置无法满足您的开发场景,可以在Configuration文件中重新定义HttpMessageConverters:

引入diboot-core-starter后,SQL分页查询出现重复的LIMIT

重复定义了分页导致的,diboot-core-starter默认预置了mybatis-plus的分页配置(使用mybatis-plus 3.4.x的MybatisPlusInterceptor最新配置方式)。 如果您依赖的是core-starter,则无需再次配置mybatis-plus的分页,将您自定义的mybatis-plus分页配置删掉即可。 如果需要添加其他Interceptor,则需要重新定义MybatisPlusInterceptor。 示例如下:

mybatis-plus老项目中想要使用diboot的绑定能力?或在无数据库连接配置文件的module下,使用diboot-core?

对于没有历史包袱的新项目,我们建议您全使用diboot体系starter组件。 core内核组件有以下两个包:

diboot-core: 内核代码

diboot-core-starter: 依赖diboot-core,增加了自动配置及初始化字典表等功能(需要依赖数据库)。

对于mybatis-plus老项目中想要使用diboot的绑定能力 或 在无数据库连接配置文件的module下,使用内核组件,可以只依赖diboot-core,而不是diboot-core-starter。 步骤如下:

1、添加core依赖(非core-starter)

2、如果只依赖core,你还需要将com.diboot.core加入包扫描并实现HttpMessageConverters和Mybatis-plus的分页配置:

3、如果只依赖core,且需要使用@BindDict字典绑定,需实现DictionaryServiceExtPvider接口。 (使用diboot-core-starter可以自动创建dictionary表,或者可以下载SQL (opens new window)手动建表。

#启动报错:找不到mapper中的自定义接口

diboot-devtools默认不指定mapper.xml路径时,mapper.xml文件会生成到mapper同路径下便于。 此时需要修改pom配置,让编译包含xml、dtd类型文件。

Maven配置:

Gradle配置:

如何构建树形结构?

树形结构对象约定:要有 parentId属(根节点为0) 和 List children 属,便于自动构建。

先把需要构建树形结构的节点全部查出来,如:

调用BeanUtils.buildTree构建树形结构

返回第一级子节点。

上一篇 2023-01-31
下一篇 2022-12-14

相关推荐

  • Diboot

    Diboot是一款开发平台,可以通过这款软件设计新的应用程序和web程序,软件提供基框架+高效工具,包括core基内核、IAM权限组件、file文件组件、scheduler定时...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)