# 起步简介

# diboot-core 简介

diboot-core 是 diboot 2.x版本的核心基础框架,基于Spring Boot、Mybatis-plus封装,实现基础代码的简化及高效开发。 使用diboot-core可以更加简单快捷地创建web应用,极大简化之前的诸多复杂SQL和代码,更易维护。 同时搭配diboot-devtools 高效工具,让您彻底摆脱常规SQL与CRUD。

高效精简内核,重构查询方式,简化开发、提高性能,主要实现:

  1. 单表CRUD无SQL
  2. 关联查询绑定无SQL(注解自动绑定)
  3. 数据字典无SQL(注解自动绑定)
  4. 跨表Join查询无SQL(QueryWrapper自动构建与查询)
  5. BaseService扩展增强,支持常规的单表及关联开发场景接口
  6. 数据权限、工具类的最佳实践封装
  7. 提供diboot-core-starter (opens new window),简化diboot-core的初始化配置(自动配置、自动创建字典表)

# diboot-core 与 diboot-core-starter 的说明

  • diboot-core 是diboot的内核组件,core只封装基础实现,不依赖任何表和starter组件。
  • diboot-core-starter 是基于diboot-core组件的starter封装,包含Dictionary字典表service和mapper实现、BindDict字典绑定的实现、自动安装字典表,以及默认配置HttpMessageConverters和Mybatis-plus的分页。

# diboot-core (diboot-core-starter) 使用步骤

# 1. 引入依赖

Maven

<dependency>
    <groupId>com.diboot</groupId>
    <artifactId>diboot-core-spring-boot-starter</artifactId>
    <version>{latestVersion}</version>
</dependency>

或Gradle:

compile("com.diboot:diboot-core-spring-boot-starter:{latestVersion}")

# 2. 配置参数(数据源)

  • 以Mysql为例,配置数据源如下:
#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的可选参数配置:
# 是否初始化sql,默认true,初始化之后可以改为false关闭检测
diboot.core.init-sql=false

# 3. 配置config类:

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

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return interceptor;
}

同时core-starter中也默认配置了HttpMessageConverters,如果需要更改默认配置, 则需要在配置类中重新定义HttpMessageConverters。

@Bean
public HttpMessageConverters jacksonHttpMessageConverters() {
    ...
}

注意:diboot-core-starter预置了默认的配置以及字典表相关的接口实现,如果是老项目中仅依赖diboot-core(非diboot-core-starter),则还需要将diboot的包路径加入ComponentScan中。

# 4. 参考样例 - diboot-core-example (opens new window)

diboot-core的最佳实践:建议自定义自己的Base类,避免直接继承core中的Base类,便于后期扩展。 启用devtools,可一键生成初始自定义Base类代码到本地。

# 支持数据库

MySQL (5.7+)、MariaDB (10+)、ORACLE (12c+)、SQLServer (2017+)、PostgreSQL (11+)。

其他数据库不支持starter自动安装表,diboot不提供默认支持,如果需要其他库下使用,可联系我们定制适配。

# 相关依赖

新项目建议使用 diboot-core-starter自动配置及建表,mybatis-plus老项目可以尝试依赖diboot-core并手动配置并实现字典绑定接口。

TIP

diboot-core 依赖:

  • javax.servlet-api 4.x
  • spring-web 5.3.x.RELEASE
  • spring-tx 5.3.x.RELEASE
  • spring-jdbc 5.3.x.RELEASE
  • spring-context 5.3.x.RELEASE
  • hibernate-validator 6.2.x.Final
  • slf4j-api 1.7.x
  • mybatis-plus 3.4.2
  • commons-lang3 3.11
  • jackson-databind

TIP

diboot-core-starter 新增依赖:

  • spring-boot-starter-web 2.4.x
  • spring-boot-starter-validation 2.4.x
  • mybatis-plus-boot-starter 3.4.2

TIP

需要额外添加的jar

  • 数据库驱动包 (如 mysql:mysql-connector-java:8.0.x)

使用过程中遇到问题,可加群交流。