Diboot是一款专业的轻代码开发平台。编程人员都在使用的轻代码开发平台Diboot。该软件提供了一个基本框架+高效工具,包括核心基本内核,IAM许可组件,文件文件组件,调度程序计时组件,diboot-antd-admin,diboot-element-admin,devtools开发助手。使用这些组件可以快速配置程序开发程序,要构建新程序,可以部署身份访问控制模块,可以部署文件处理模块,可以向程序添加定时任务,可以配置工作流程方案,以及与开发助手结合使用,为用户添加功能模块提供了更好的部署方法。 CRUD完成功能生成,前端组件布局和生成,数据结构代码同步,一键生成后端代码,未覆盖的更新代码,SQL和索引的自动维护,如果需要此软件,请下载!
软件功能:
非常易于使用(导入依赖的jar,在配置参数之后,您可以使用应用程序启动和运行)
功能强大(数据结构和代码同步,前后一键生成,前端面板组件布局)
灵活的配置(您可以配置生成的代码路径并启用`Lombok`,`Swagger`等)
代码标准(devtools使数据结构定义和代码实现标准化,从而降低了维护成本)
支持多个数据库(MySQL,MariaDB,ORACLE,SQLServer,PostgreSQL)
使用说明:
Diboot-IAM说明
#1,引入依赖
或Gradle:
数据库连接已配置,并且iam启动程序组件将在首次启动时进行自我初始化,以生成相关的表和初始数据。
如果使用diboot-devtools,则还需要引入与devtools相关的依赖关系,并且可以一键生成与iam相关的控制器。
注意:iam初始化的帐户密码为:admin / 123456,请在启动成功后及时更改密码。
#2,参数配置:
配置文件配置项:
3,认证授权
登录/应用程序令牌(后端):
Diboot(轻代码开发平台)
前端登录获取令牌后,对其进行缓存并将其添加到每个请求的标头中。该属性名称是:authtoken
当令牌的剩余有效期小于1/4时,组件将自动生成一个新令牌并将其写入响应标头中。该属性名称也是:authtoken。前端检查响应头是否有新的身份验证令牌,然后替换本地缓存的值。
#4,BindPermission批注使用
支持添加到Controller类和方法。授权代码支持类似于Spring @RequestMapping批注的“类+方法”拼接功能。该方法上的注释支持自动身份验证,可以继承。如:
BindPermission批注支持自动提取需要认证的接口列表,并将其提供给前端以进行快速绑定。
#5,日志操作日志注释的使用
@Log批注支持将操作日志自动记录到iam_operation_log表中,并且Log批注支持直接添加到RequestMapping方法中。
支持添加到Controller方法,例如:
6,登录/注册/注销
登录:
退出:
注册帐号
获取当前用户对象:
Diboot-IAM:身份验证组件
#1扩展其他登录方式
默认登录方法是:用户名和密码,如果您需要扩展其他登录方法:
创建您的身份验证凭据对象,从AuthCredential继承
实现AuthService接口,定义身份验证方法和接口实现
申请f
或用您的身份验证方法替换令牌:
2.替换用户类型或扩展多个用户类型
默认用户实体为IamUser,以获取当前登录的用户对象:
如果预设属性不能满足业务场景的需求,则可以用您的实体替换用户:
首先,在登录方法中,在生成令牌之前先传递当前用户类型:(如果有多个用户类型共享登录界面,则可以从前端登录页面中传递“用户类型值”)
获取与用户对象相关的代码以:
或多个用户:
3,更换缓存管理器
组件的默认缓存类是shiro的内存缓存实现:MemoryConstrainedCacheManager。如果需要用自定义缓存(例如redis)替换它,则需要创建一个缓存实现类来实现CacheManager接口(请参阅MemoryConstrainedCacheManager的源代码)。
#步骤1。依赖spring-boot-starter-data-redis,配置参数并初始化RedisTemplate
第2步。创建从AbstractCacheManager继承的Redis缓存管理类,并覆盖createCache。
实现shiro的Cache接口:
第三步将Shiro的CacheManager配置为CacheManager缓存类实例
4.自定义数据权限
在某些情况下,搜索查询需要绑定一些强制条件以进行数据访问控制,例如仅查询该部门的数据。
#步骤1。将@DataAccessCheckpoint批注添加到需要数据访问控制的Entity字段中,并指定CheckpointType。
样例代码:
第2步。实现DataAccessInterface接口,并返回与当前用户可以访问的CheckpointType相对应的有效ID集。
第三步在Spring config类中配置Mybatis-plus数据权限拦截器以启用数据权限拦截
5.将JWT的令牌实现更改为无状态令牌
在v2.2配置类中重新定义了BasicHttpAuthenticationFilter,并将其替换为StatelessJwtAuthFilter。示例代码如下:
常见问题:
Diboot-iam-spring-boot-starter相关
#Diboot它支持哪个版本的Spring Boot?
Diboot 2.0.x支持Spring Boot 2.2.x
Diboot 2.1.x支持Spring Boot 2.3.x
Diboot 2.2.x支持Spring Boot 2.4+
#IAM的后端代码在哪里?
IAM后端基本代码由devtools自动生成
配置diboot组件依赖性和devtools依赖性
启动项目,进入devtools的组件初始化页面,选择诸如Core和IAM之类的组件,然后执行初始化
Devtools将生成基于IAM的代码到您配置的路径
注意:diboot-example(在新窗口中打开)包含供参考的后端示例:diboot-iam-example(IAM示例代码)和diboot-online-demo(在线演示项目)。
#如何自定义杰克逊配置
默认的HttpMessageConverters配置包含在diboot-core-starter中,启用了jackson并完成了初始配置。关键配置参数为:
如果配置不能满足您的开发方案,则可以在配置文件中重新定义HttpMessageConverters:
引入diboot-core-starter后,SQL分页查询已重复LIMIT
这是由于重复定义页面导致的,并且diboot-core-starter默认情况下预设了mybatis-plus的页面配置(使用mybatis-plus 3.4.x的MybatisPlusInterceptor的最新配置方法)。如果您依靠core-starter,则无需再次配置mybatis-plus的分页,只需删除自定义的mybatis-plus的分页配置即可。如果需要添加其他拦截器,则需要重新定义MybatisPlusInterceptor。示例如下:
是否要在mybatis-plus旧项目中使用diboot的绑定功能?还是在没有数据库连接配置文件的模块中使用diboot-core?
对于没有历史负担的新项目,建议您使用diboot系统启动程序组件。核心组件具有以下两个软件包:
Diboot-core:内核代码
Diboot-core-starter:取决于diboot-core,添加了功能
例如字典表的自动配置和初始化(需要数据库信息)。
对于想要使用diboot的绑定功能或在没有数据库连接配置文件的模块下使用内核组件的mybatis-plus旧项目,您只能依靠diboot-core而不是diboot-core-starter。进行如下:
1,添加核心依赖(不是core-starter)
2.如果仅依赖核心,则还需要添加com.diboot.core来进行程序包扫描,并实现HttpMessageConverters和Mybatis-plus的分页配置:
3.如果仅依赖核心,并且需要使用@BindDict字典绑定,则需要实现DictionaryServiceExtProvider接口。 (使用diboot-core-starter自动创建字典表,或下载SQL(打开新窗口)以手动创建表。
#启动错误:在映射器中找不到自定义界面
如果默认情况下diboot-devtools未指定mapper.xml路径,则将在与映射器相同的路径中生成mapper.xml文件,以便于维护。这时,您需要修改pom配置,以便编译包含xml和dtd类型文件。
Maven配置:
摇篮配置:
如何建立树结构?
树结构对象约定:parentId属性(根节点为0)和List children属性有助于自动构造。
首先找出所有需要构建树结构的节点,例如:
调用BeanUtils.buildTree来构建树结构
返回到第一级子节点集合。
软件特色:
CRUD导入和导出单个表及相关场景的完整功能是全自动生成的,不需要手写代码
结合前端面板组件编排功能,它可以自动生成更多场景
数据结构更改与代码链接同步,自动记录对SQL的更改并维护索引
一键式代码生成和非覆盖更新本地后端代码
配置非常灵活(您可以根据需要配置生成的代码路径,是否启用“ Lombok”,“ Swagger”等)。
SQL和代码非常标准(devtools标准化数据结构定义和代码实现)