更新文档

This commit is contained in:
mazhicheng 2020-07-05 13:48:21 +08:00
parent 67025c66d6
commit 85523dbda1
12 changed files with 158 additions and 91 deletions

View File

@ -1,4 +1,4 @@
> 助力抗击疫情diboot 团队紧急上线公益“轻统计工具”无需注册Excel一键生成在线填报表单、快速收集统计数据。[<点我使用>](http://s.dibo.ltd/#/g "注解自动绑定多表关联") > v2.1版本发布可以告别常规SQL和CRUD了
# diboot # diboot
<p align="center"> <p align="center">

View File

@ -143,7 +143,20 @@ compile("com.diboot:diboot-core-spring-boot-starter:{latestVersion}")
<version>{latestVersion}</version> <version>{latestVersion}</version>
</dependency> </dependency>
~~~ ~~~
> * @BindDict注解需要依赖dictionary表启用diboot-devtools初次启动时starter会自动创建该表。
#### 2. 详细文档 - [diboot-core 官方文档](https://www.diboot.com/guide/diboot-core/%E5%AE%89%E8%A3%85.html) #### 2. 配置数据源
#### 3. 参考样例 - [diboot-core-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example) 以Mysql为例
~~~properties
#datasource config
spring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=diboot
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
~~~
> * @BindDict注解需要依赖dictionary表依赖diboot-core-spring-boot-starter初次启动时starter会自动创建该表。
#### 3. 详细文档 - [diboot-core 官方文档](https://www.diboot.com/guide/diboot-core/%E5%AE%89%E8%A3%85.html)
#### 4. 参考样例 - [diboot-core-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example)

View File

@ -1,51 +1,70 @@
# 简介 # 起步简介
## diboot-core 高效精简内核 ## diboot-core 简介
> diboot-core 是 diboot 2.x版本的核心基础框架基于Spring Boot、Mybatis-plus封装实现基础代码的简化及高效。 > diboot-core 是 diboot 2.x版本的核心基础框架基于Spring Boot、Mybatis-plus封装实现基础代码的简化及高效开发
> 使用diboot-core可以更加简单快捷地创建web应用您之前的诸多代码将被极大简化系统也易维护。 > 使用diboot-core可以更加简单快捷地创建web应用您之前的诸多代码将被极大简化更易维护。
> 同时搭档[diboot-devtools](../diboot-devtools/介绍.md)让您彻底摆脱CRUD。 > 同时搭档[diboot-devtools](../diboot-devtools/介绍.md),让您彻底摆脱常规SQL与CRUD。
高效精简内核,重构查询方式,简化开发、提高性能,主要实现: 高效精简内核,重构查询方式,简化开发、提高性能,主要实现:
1. 单表CRUD无SQL 1. 单表CRUD无SQL
> 基于Mybatis-Plus实现Mybatis-Plus具备通用Mapper方案和灵活的查询构造器
2. 关联查询绑定无SQL注解自动绑定 2. 关联查询绑定无SQL注解自动绑定
> 扩展实现了多表关联查询的无SQL方案只需要一个简单注解@Bind*,就可以实现关联对象(含字段、字段集合、实体、实体集合等)的数据绑定,且实现方案是将关联查询拆解为单表查询,保障最佳性能。
3. 数据字典无SQL注解自动绑定 3. 数据字典无SQL注解自动绑定
> 通过@BindDict注解实现数据字典(枚举)的存储值value与显示值name的转换。
4. 跨表Join查询无SQLQueryWrapper自动构建与查询 4. 跨表Join查询无SQLQueryWrapper自动构建与查询
> @BindQuery注解绑定字段参数对应的查询条件及关联表自动将请求参数绑定转换为QueryWrapper并动态执行单表或Join联表查询。
5. BaseService扩展增强支持常规的单表及关联开发场景接口 5. BaseService扩展增强支持常规的单表及关联开发场景接口
> createEntityAndRelatedEntities、getValuesOfField、exists、getKeyValueList、getViewObject*等接口
6. 其他常用Service接口、工具类的最佳实践封装 6. 其他常用Service接口、工具类的最佳实践封装
> 字符串处理、常用校验、BeanUtils、DateUtils等
7. 提供[diboot-core-starter](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example)简化diboot-core的初始化配置自动配置、自动创建数据字典表 7. 提供[diboot-core-starter](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example)简化diboot-core的初始化配置自动配置、自动创建数据字典表
## 支持数据库 ## diboot-core 使用步骤
MySQL、MariaDB、PostgreSQL、ORACLE、SQLServer ### 1. 引入依赖
Gradle:
~~~gradle
compile("com.diboot:diboot-core-spring-boot-starter:{latestVersion}")
~~~
或Maven
~~~xml
<dependency>
<groupId>com.diboot</groupId>
<artifactId>diboot-core-spring-boot-starter</artifactId>
<version>{latestVersion}</version>
</dependency>
~~~
## diboot-core 使用 ### 2. 配置参数(数据源)
参数配置: * 以Mysql为例配置数据源如下
diboot-core-starter有以下一个配置项用于设置是否检测初始化SQL
配置参数:
~~~properties ~~~properties
# 是否初始化sql默认true初始化之后可以关闭 #datasource config
spring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=diboot
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
~~~
> 注:@BindDict注解需要依赖dictionary表diboot-core starter 初次启动时会自动创建该表。
* diboot-core-spring-boot-starter的可选参数配置
~~~properties
# 是否初始化sql默认true初始化之后可以改为false关闭
diboot.core.init-sql=false diboot.core.init-sql=false
~~~ ~~~
使用步骤请参考 [diboot-core README](https://github.com/dibo-software/diboot-v2/tree/master/diboot-core) ### 3. 参考样例 - [diboot-core-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example)
参考样例 [diboot-core-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-core-example) > diboot-core的最佳实践建议自定义自己的Base类避免直接继承core中的Base类便于后期扩展。
启用devtools可一键生成初始Base类代码到本地。
## 支持数据库
MySQL、MariaDB、PostgreSQL、ORACLE、SQLServer
## 相关依赖 ## 相关依赖
:::tip :::tip
以下依赖在引入diboot-core-starter依赖中可以不再引入。 以下依赖在引入diboot-core-starter依赖中可以不再引入。
::: :::
* **javax.servlet-api**(javax.servlet:javax.servlet-api:4.x) * **javax.servlet-api**(javax.servlet:javax.servlet-api:4.x)
* **spring-boot-starter-web**(org.springframework.boot:spring-boot-starter-web:2.x.RELEASE) * **spring-boot-starter-web**(org.springframework.boot:spring-boot-starter-web:2.3.x.RELEASE)
* **mybatis-plus-boot-starter**(com.baomidou:mybatis-plus-boot-starter:3.x) * **mybatis-plus-boot-starter**(com.baomidou:mybatis-plus-boot-starter:3.3.x)
* **commons-io**(commons-io:commons-io:2.6) * **commons-io**(commons-io:commons-io:2.6)
* **commons-lang3**(org.apache.commons:commons-lang3:3.9) * **commons-lang3**(org.apache.commons:commons-lang3:3.10)
* **fastjson**(com.alibaba:fastjson:1.2.x) * **fastjson**(com.alibaba:fastjson:1.2.x)
:::tip :::tip
@ -53,3 +72,4 @@ diboot.core.init-sql=false
::: :::
* **数据库驱动包** (如 mysql:mysql-connector-java:8.0.18) * **数据库驱动包** (如 mysql:mysql-connector-java:8.0.18)
> 使用过程中遇到问题,可加群交流。

View File

@ -18,4 +18,5 @@
* 后端Java+关系数据库跟紧Spring Boot * 后端Java+关系数据库跟紧Spring Boot
* ORM站队Mybatis通用Mapper框架选择Mybatis-plus * ORM站队Mybatis通用Mapper框架选择Mybatis-plus
* 前后分离前端选型Vue * 后端权限使用Shiro+JWT
* 前后分离前端选型Vue

View File

@ -1,47 +1,62 @@
# 开始使用 # 开始使用
## 创建新的Spring Boot web项目 ## 1. 创建新的Spring Boot web项目
推荐使用 [Spring Initializer](https://start.spring.io/),快速初始化一个 Spring Boot 工程。 推荐使用 [Spring Initializer](https://start.spring.io/),快速初始化一个 Spring Boot 工程。
如果您使用IntelliJ IDEA可以直接通过菜单: File -> New -> Project -> Spring Initializr 创建。
## 引入依赖 ## 2. 引入依赖
* Gradle项目引入依赖 * Gradle项目引入依赖
``` ```
providedCompile("com.diboot:diboot-devtools-spring-boot-starter:{latestVersion}")
compile("com.diboot:diboot-core-spring-boot-starter:{latestVersion}") compile("com.diboot:diboot-core-spring-boot-starter:{latestVersion}")
providedCompile("com.diboot:diboot-devtools-spring-boot-starter:{latestVersion}")
``` ```
* Maven项目引入依赖 * Maven项目引入依赖
``` ```
<dependency>
<groupId>com.diboot</groupId>
<artifactId>diboot-core-spring-boot-starter</artifactId>
<version>{latestVersion}</version>
</dependency>
<dependency> <dependency>
<groupId>com.diboot</groupId> <groupId>com.diboot</groupId>
<artifactId>diboot-devtools-spring-boot-starter</artifactId> <artifactId>diboot-devtools-spring-boot-starter</artifactId>
<version>{latestVersion}</version> <version>{latestVersion}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.diboot</groupId>
<artifactId>diboot-core-spring-boot-starter</artifactId>
<version>{latestVersion}</version>
</dependency>
``` ```
> diboot-devtools-spring-boot-starter 是用于开发过程的助手工具,须声明 **provided**以免打包至非开发环境。 > diboot-devtools-spring-boot-starter 是用于开发过程的助手工具,须声明 **provided**以免打包至非开发环境。
## 添加配置信息 ## 3. 添加配置信息
* 配置信息示例 * diboot-core starter依赖的数据源配置已配置可忽略Mysql示例
``` ~~~properties
#datasource config
spring.datasource.url=jdbc:mysql://localhost:3306/diboot_example?characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=diboot
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
~~~
* diboot-devtools 配置示例:
~~~properties
# Spring 相关配置 # Spring 相关配置
spring.main.allow-bean-definition-overriding=true spring.main.allow-bean-definition-overriding=true
# diboot-devtools 相关配置 # diboot-devtools 相关配置
# 作者等注释信息
diboot.devtools.codes-version=1.0 diboot.devtools.codes-version=1.0
diboot.devtools.codes-copyright=MyCompany diboot.devtools.codes-copyright=MyCompany
diboot.devtools.codes-author=MyName diboot.devtools.codes-author=MyName
# 代码生成路径及偏好
diboot.devtools.output-path=example/src/main/java/com/diboot/example/ diboot.devtools.output-path=example/src/main/java/com/diboot/example/
diboot.devtools.output-path-sql=example/src/main/resources/ diboot.devtools.output-path-sql=example/src/main/resources/
diboot.devtools.enable-lombok=true diboot.devtools.enable-lombok=true
#diboot.devtools.enable-swagger=false #diboot.devtools.enable-swagger=false
#diboot.devtools.generate-mapper-xml=false #diboot.devtools.generate-mapper-xml=false
``` # 前端项目路径diboot-element-admin 或 diboot-antd-admin项目
diboot.devtools.output-path-frontend=/D:/Workspace/diboot/diboot-antd-admin/
~~~
* 配置信息说明 * diboot-devtools 配置参数说明:
* spring.main.allow-bean-definition-overriding=true遇到同样名字的Bean时允许覆盖。 * spring.main.allow-bean-definition-overriding=true遇到同样名字的Bean时允许覆盖。
@ -51,9 +66,11 @@ diboot.devtools.enable-lombok=true
* codes-author生成代码的作者显示在每个类或接口的注释中。 * codes-author生成代码的作者显示在每个类或接口的注释中。
* output-path当前项目代码的默认起始路径 * output-path当前项目代码的默认起始路径
* output-path-*:分别定义当前项目中`Entity`、`VO`、`Service及其实现类`、`Mapper及映射文件`、`Controller`、等文件所在的路径。 * output-path-*:分别定义当前项目中`Entity`、`VO`、`Service及其实现类`、`Mapper及映射文件`、`Controller`、等文件所在的路径。
* output-path-sqldevtools生成的数据结构变更SQL存储路径便于同步至非开发环境。
* generate-mapper-xml是否生成Mapper.xml文件默认true * generate-mapper-xml是否生成Mapper.xml文件默认true
* enable-lombok是否引入`Lombok`注解若设置true请注意添加Lombok依赖。 * enable-lombok是否引入`Lombok`注解若设置true请注意添加Lombok依赖。
* enable-swagger是否引入`Swagger`注解若设置true请注意添加Swagger依赖。 * enable-swagger是否引入`Swagger`注解若设置true请注意添加Swagger依赖。
* output-path-frontend前端Vue项目路径用于前端代码生成。前端项目下载 [diboot-element-admin](https://github.com/dibo-software/diboot-element-admin) 或 [diboot-antd-admin](https://github.com/dibo-software/diboot-antd-admin)
:::warning :::warning
如果您使用的是**PostgreSQL数据库**那么需要额外添加两行配置以此来适配boolean类型字段所对应的数据库的boolean类型需添加的配置如下 如果您使用的是**PostgreSQL数据库**那么需要额外添加两行配置以此来适配boolean类型字段所对应的数据库的boolean类型需添加的配置如下
@ -63,19 +80,17 @@ mybatis-plus.global-config.db-config.logic-delete-value=true
mybatis-plus.global-config.db-config.logic-not-delete-value=false mybatis-plus.global-config.db-config.logic-not-delete-value=false
``` ```
## 初始化数据库 ## 4. 启动项目
diboot-devtools在初次运行中会自动安装所需数据库表如果已经存在则不做操作。 以 Spring Boot 项目在IntelliJ IDEA中的一种启动方式为例
## 启动项目
以SpringBoot项目在IntelliJ IDEA中的一种启动方式为例
在项目入口文件 `Application` 上点击右键,在弹出的菜单上点击 `RUN 'Application'` 在项目入口文件 `Application` 上点击右键,在弹出的菜单上点击 `RUN 'Application'`
当出现类似下面提示时,表示启动成功: 当出现类似下面提示时,表示启动成功:
``` ```
: Started Application in 4.223 seconds (JVM running for 16.693) : Started Application in 4.223 seconds (JVM running for 16.693)
``` ```
diboot-devtools在初次运行中会自动检测安装以diboot_前缀的数据库表。
## 打开管理页面 ## 5. 打开管理页面
在控制台(Console)上的启动日志中,找到如下日志: 在控制台(Console)上的启动日志中,找到如下日志:
``` ```
: Diboot devtools v2.x 开始初始化 ... : Diboot devtools v2.x 开始初始化 ...
@ -106,4 +121,5 @@ diboot-devtools在初次运行中会自动安装所需数据库表如果
## 参考样例 ## 参考样例
devtools使用样例(gradle配置) [diboot-devtools-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-devtools-example) devtools使用样例(gradle配置) [diboot-devtools-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-devtools-example)
> 使用过程中遇到问题,可加群交流。

View File

@ -1,9 +1,9 @@
# diboot-file: 文件处理组件 # diboot-file: 文件处理组件
## 组件特性 ## 组件特性
* EasyExcel轻量封装支持Java注解校验与@BindDict注解实现字典name-value转换提供完善的校验错误提示 * EasyExcel轻量封装支持Java注解校验与@ExcelBind*注解实现字典及关联字段的name-value转换提供完善的校验错误提示
* 封装常用的文件本地存储、上传下载、图片压缩水印等常用处理 * 封装常用的文件本地存储、上传下载、图片压缩水印等常用处理
* Starter启动自动安装依赖的数据表 * Starter启动自动安装依赖的数据表
* 启用devtools自动生成初始样例controller代码到本地 * 启用devtools可一键生成初始样例controller代码到本地
> 组件依赖的数据表upload_file在组件starter初次启动时将自动初始化。 > 组件依赖的数据表upload_file(通用的上传文件记录表)在组件starter初次启动时将自动初始化。

View File

@ -23,7 +23,7 @@ diboot-file会自动依赖以下jar包无需重复引入
> file组件依赖一张表 upload_file ,用于存储文件/附件上传记录。该表将由diboot-file-starter初次加载时自动初始化。 > file组件依赖一张表 upload_file ,用于存储文件/附件上传记录。该表将由diboot-file-starter初次加载时自动初始化。
> 如果使用diboot-devtools还需要引入devtools相关依赖自动生成相关的上传下载controller。 > 如果使用diboot-devtools还需要引入devtools相关依赖一键生成相关的上传下载的controller。
## 2、参数配置 ## 2、参数配置
diboot-file组件有以下配置项用于初始化及设置本地文件的存储起始目录子目录会按分类与日期自动创建 diboot-file组件有以下配置项用于初始化及设置本地文件的存储起始目录子目录会按分类与日期自动创建
@ -37,14 +37,20 @@ files.storage.directory=/myfile
## 3. 使用说明 ## 3. 使用说明
### 3.1 EasyExcel的增强优化 ### 3.1 EasyExcel的增强优化
支持基于Java validator注解的自动数据校验
* 支持基于Java validator注解的自动数据校验
~~~java
@NotNull(message = "用户名不能为空") // 支持validation注解自动校验
@ExcelProperty(value = "状态", index = 1)
private String username;
~~~
* 支持@ExcelBindDict注解自动转换字典显示值-存储值 * 支持@ExcelBindDict注解自动转换字典显示值-存储值
@ExcelBindDict注解使用示例 @ExcelBindDict注解使用示例
~~~java ~~~java
@NotNull(message = "用户状态不能为空") // 自动校验
@ExcelBindDict(type = "USER_STATUS") // 自动转换数据字典 label-value @ExcelBindDict(type = "USER_STATUS") // 自动转换数据字典 label-value
@ExcelProperty(value = "状态", index = 4, converter = DictConverter.class) @ExcelProperty(value = "状态", index = 2)
private String userStatus; private String userStatus;
~~~ ~~~
@ -53,11 +59,11 @@ private String userStatus;
@ExcelBindField注解使用示例 @ExcelBindField注解使用示例
~~~java ~~~java
@ExcelBindField(entity = Department.class, field = "name", setIdField = "parentId") @ExcelBindField(entity = Department.class, field = "name", setIdField = "parentId")
//@NotNull(message = "上级部门不能为空")
@ExcelProperty(value = "上级部门", index = 0) @ExcelProperty(value = "上级部门", index = 0)
private String parentName; private String parentName;
// setIdField="parentId"将转换后的id值设置到parentId // setIdField="parentId"将转换后的id值设置到parentId
@ExcelIgnore
private Long parentId; private Long parentId;
~~~ ~~~
@ -132,7 +138,7 @@ DynamicHeadExcelListener
public <T> JsonResult upload(@RequestParam("file")MultipartFile file, HttpServletRequest request) throws Exception { public <T> JsonResult upload(@RequestParam("file")MultipartFile file, HttpServletRequest request) throws Exception {
return super.uploadExcelFile(file, Department.class, request); return super.uploadExcelFile(file, Department.class, request);
} }
~~~ ~~~
### 3.3 其他常用文件处理相关工具类 ### 3.3 其他常用文件处理相关工具类
@ -158,3 +164,5 @@ ZipHelper.zipFile(String srcRootDir, File file, ZipOutputStream zos, String... m
## 4 样例参考 - [diboot-file-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-file-example) ## 4 样例参考 - [diboot-file-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-file-example)
> 使用过程中遇到问题,可加群交流。

View File

@ -7,7 +7,7 @@
// 自定义文件存储 // 自定义文件存储
@Override @Override
protected <T> UploadFile saveFile(MultipartFile file, Class<T> entityClass, HttpServletRequest request) throws Exception { protected <T> UploadFile saveFile(MultipartFile file, Class<T> entityClass, HttpServletRequest request) throws Exception {
// 自定义文件存储,默认本地存储 // 自定义文件存储,默认本地存储存储后的访问url写回accessUrl
return super.saveFile(file, entityClass, request); return super.saveFile(file, entityClass, request);
} }
~~~ ~~~

View File

@ -8,7 +8,7 @@
* 预置用户名密码登录(密码带盐加密), 并支持多种登录方式扩展 * 预置用户名密码登录(密码带盐加密), 并支持多种登录方式扩展
* 预置默认用户实体,并支持灵活替换用户类型 * 预置默认用户实体,并支持灵活替换用户类型
* 默认启用内存缓存,并支持自定义缓存实现类 * 默认启用内存缓存,并支持自定义缓存实现类
* starter启动自动安装依赖的数据表启用devtools还可自动生成初始controller代码到本地 * starter启动自动安装依赖的数据表启用devtools还可一键生成初始controller代码到本地
## 角色权限模型说明 ## 角色权限模型说明

View File

@ -4,7 +4,6 @@
Gradle: Gradle:
~~~gradle ~~~gradle
compile("com.diboot:diboot-iam-base-spring-boot-starter:{latestVersion}") compile("com.diboot:diboot-iam-base-spring-boot-starter:{latestVersion}")
compile("com.github.whvcse:easy-captcha:1.6.2")
~~~ ~~~
或Maven 或Maven
~~~xml ~~~xml
@ -13,58 +12,40 @@ compile("com.github.whvcse:easy-captcha:1.6.2")
<artifactId>diboot-iam-base-spring-boot-starter</artifactId> <artifactId>diboot-iam-base-spring-boot-starter</artifactId>
<version>{latestVersion}</version> <version>{latestVersion}</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
~~~ ~~~
> 配置了数据库连接初次启动时iam-base starter组件会自初始化生成相关的表及初始数据。 > 配置了数据库连接初次启动时iam-base starter组件会自初始化生成相关的表及初始数据。
> 如果使用diboot-devtools还需要引入devtools相关依赖自动生成iam-base相关的controller。 > 如果使用diboot-devtools还需要引入devtools相关依赖可一键生成iam-base相关的controller。
## 2、参数配置 ## 2、参数配置
* 注解配置: * 注解配置:
请确保您的启动类或者配置类上配置了**@EnableTransactionManagement**注解,如: 请确保您的启动类或者配置类上配置了**@EnableTransactionManagement**注解,如:
```java ```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement @EnableTransactionManagement
@SpringBootApplication @SpringBootApplication
public class Application { public class Application {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);
} }
} }
``` ```
* 配置文件配置项: * 配置文件配置项:
```properties
```
#是否执行SQL初始化默认true非开发环境需关闭
diboot.iam.init-sql=true
#当前应用程序多个系统时配置默认为MS管理系统
diboot.iam.application=MS
#JWT的签名key,需自定义 #JWT的签名key,需自定义
diboot.iam.jwt-signkey=Diboot diboot.iam.jwt-signkey=xxx
#JWT的token过期时间默认为60分钟 #JWT的token过期时间默认为60分钟
diboot.iam.jwt-token-expires-minutes=60 diboot.iam.jwt-token-expires-minutes=60
#Shiro的匿名urls,用逗号分隔 #Shiro的匿名urls,用逗号分隔
diboot.iam.anon-urls=/test/**,/abc/** diboot.iam.anon-urls=/test/**,/abc/**
#是否开启权限检查(开发环境可关闭方便调试) #是否开启权限检查默认true。改为false后结合anno-urls=/**配置,可忽略权限检查,便于开发环境调试
#diboot.iam.enable-permission-check=false diboot.iam.enable-permission-check=true
#缓存实现类,默认为: org.apache.shiro.cache.MemoryConstrainedCacheManager #缓存实现类,默认为: org.apache.shiro.cache.MemoryConstrainedCacheManager
diboot.iam.cache-manager-class=org.apache.shiro.cache.MemoryConstrainedCacheManager diboot.iam.cache-manager-class=org.apache.shiro.cache.MemoryConstrainedCacheManager
@ -122,6 +103,11 @@ iamAccountService.createEntity(account);
* 获取当前用户对象: * 获取当前用户对象:
~~~java ~~~java
IamUser currentUser = IamSecurityUtils.getCurrentUser(); IamUser currentUser = IamSecurityUtils.getCurrentUser();
// 多种类型的用户
BaseLoginUser loginUser = IamSecurityUtils.getCurrentUser();
// 转型
~~~ ~~~
## 6、样例参考 - [diboot-iam-example](https://github.com/dibo-software/diboot-v2-example/diboot-iam-example) ## 6、样例参考 - [diboot-iam-example](https://github.com/dibo-software/diboot-v2-example/diboot-iam-example)
> 使用过程中遇到问题,可加群交流。

View File

@ -2,19 +2,38 @@
## 组件特性 ## 组件特性
* EasyExcel轻量封装支持自动校验与字典转换优化校验错误的提示内容 * EasyExcel轻量封装支持自动校验与字典转换优化校验错误的提示内容
* 封装常用的文件本地存储、上传下载、图片压缩水印等常用处理 * 封装常用的文件本地存储、上传下载、图片压缩水印等常用处理
* Starter启动自动安装依赖的数据表
### 1. EasyExcel增强优化 ### 1. EasyExcel增强优化
* 支持基于Java validator注解的自动数据校验支持@BindDict注解自动转换字典显示值-存储值
使用示例: * 支持基于Java validator注解的自动数据校验
~~~java
@NotNull(message = "用户名不能为空") // 支持validation注解自动校验
@ExcelProperty(value = "状态", index = 1)
private String username;
~~~
* 支持@ExcelBindDict注解自动转换字典显示值-存储值
@ExcelBindDict注解使用示例
~~~java ~~~java
@NotNull(message = "用户状态不能为空") // 自动校验 @ExcelBindDict(type = "USER_STATUS") // 自动转换数据字典 label-value
@BindDict(type = "USER_STATUS") // 自动转换数据字典 label-value @ExcelProperty(value = "状态", index = 2)
@ExcelProperty(value = "状态", index = 4, converter = DictConverter.class)
private String userStatus; private String userStatus;
~~~ ~~~
* 支持@ExcelBindField注解自动转换关联字段name-id
@ExcelBindField注解使用示例
~~~java
@ExcelBindField(entity = Department.class, field = "name", setIdField = "parentId")
@ExcelProperty(value = "上级部门", index = 0)
private String parentName;
// setIdField="parentId"将转换后的id值设置到parentId
@ExcelIgnore
private Long parentId;
~~~
* 轻量封装增强的Excel Data Listener * 轻量封装增强的Excel Data Listener
继承后只需要实现自定义校验additionalValidate() 和 保存数据的saveData()方法。 继承后只需要实现自定义校验additionalValidate() 和 保存数据的saveData()方法。
~~~ ~~~
@ -120,3 +139,5 @@ files.storage.directory=/myfile
~~~ ~~~
## 样例参考 - [diboot-file-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-file-example) ## 样例参考 - [diboot-file-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-file-example)
> 使用过程中遇到问题,可加群交流。

View File

@ -82,11 +82,13 @@ diboot.iam.jwt-token-expires-minutes=60
#Shiro的匿名urls,用逗号分隔 #Shiro的匿名urls,用逗号分隔
diboot.iam.anon-urls=/test/**,/abc/** diboot.iam.anon-urls=/test/**,/abc/**
#是否开启权限自动更新默认true非开发环境需关闭 #是否开启权限检查默认true。改为false后结合anno-urls=/**配置,可忽略权限检查,便于开发环境调试
diboot.iam.enable-permission-update=true diboot.iam.enable-permission-check=true
#缓存实现类,默认为: org.apache.shiro.cache.MemoryConstrainedCacheManager #缓存实现类,默认为: org.apache.shiro.cache.MemoryConstrainedCacheManager
diboot.iam.cache-manager-class=org.apache.shiro.cache.MemoryConstrainedCacheManager diboot.iam.cache-manager-class=org.apache.shiro.cache.MemoryConstrainedCacheManager
``` ```
## 7、样例参考 - [diboot-iam-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-iam-example) ## 7、样例参考 - [diboot-iam-example](https://github.com/dibo-software/diboot-v2-example/tree/master/diboot-iam-example)
> 使用过程中遇到问题,可加群交流。