更新文档
This commit is contained in:
parent
67025c66d6
commit
85523dbda1
|
@ -1,4 +1,4 @@
|
||||||
> 助力抗击疫情,diboot 团队紧急上线公益“轻统计工具”,无需注册,Excel一键生成在线填报表单、快速收集统计数据。[<点我使用>](http://s.dibo.ltd/#/g "注解自动绑定多表关联")
|
> v2.1版本发布,可以告别常规SQL和CRUD了!
|
||||||
|
|
||||||
# diboot
|
# diboot
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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查询无SQL(QueryWrapper自动构建与查询)
|
4. 跨表Join查询无SQL(QueryWrapper自动构建与查询)
|
||||||
> @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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
||||||
|
|
|
@ -18,4 +18,5 @@
|
||||||
|
|
||||||
* 后端Java+关系数据库,跟紧Spring Boot
|
* 后端Java+关系数据库,跟紧Spring Boot
|
||||||
* ORM站队Mybatis,通用Mapper框架选择Mybatis-plus
|
* ORM站队Mybatis,通用Mapper框架选择Mybatis-plus
|
||||||
* 前后分离,前端选型Vue
|
* 后端权限使用Shiro+JWT
|
||||||
|
* 前后分离,前端选型Vue
|
|
@ -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-sql:devtools生成的数据结构变更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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
|
@ -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初次启动时将自动初始化。
|
|
@ -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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
|
@ -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);
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* 预置用户名密码登录(密码带盐加密), 并支持多种登录方式扩展
|
* 预置用户名密码登录(密码带盐加密), 并支持多种登录方式扩展
|
||||||
* 预置默认用户实体,并支持灵活替换用户类型
|
* 预置默认用户实体,并支持灵活替换用户类型
|
||||||
* 默认启用内存缓存,并支持自定义缓存实现类
|
* 默认启用内存缓存,并支持自定义缓存实现类
|
||||||
* starter启动自动安装依赖的数据表,启用devtools,还可自动生成初始controller代码到本地
|
* starter启动自动安装依赖的数据表,启用devtools,还可一键生成初始controller代码到本地
|
||||||
|
|
||||||
## 角色权限模型说明
|
## 角色权限模型说明
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
|
@ -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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
|
@ -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)
|
||||||
|
|
||||||
|
> 使用过程中遇到问题,可加群交流。
|
Loading…
Reference in New Issue