跳到主要内容

6.2 配置参考

本页只说明 DLZ-DB 自身的 dlz.db.* 配置。数据源连接参数由 Spring、Solon 或应用所选的数据源组件负责。

1. 核心配置

配置字段由 com.dlz.db.core.DlzDbProperties 定义。

配置键类型默认值作用
dlz.db.sqllist字符串列表[app/*]加载 classpath*:sql/<pattern>.sql 预设 SQL
dlz.db.sql字符串SELECT sql_key as k ,sql_value as s FROM sys_sql从数据库读取预设 SQL 时执行的查询
dlz.db.use-db-sqlbooleanfalse是否在初始化时从数据库加载预设 SQL
dlz.db.logic-delete-field字符串deleted逻辑删除字段;对应列存在时启用逻辑删除
dlz.db.helper.package-name字符串com.dlz自动更新表结构时扫描的实体包
dlz.db.helper.auto-updatebooleanfalse是否在启动时扫描实体并自动更新表结构
dlz.db.log.show-resultbooleanfalse是否把查询结果写入日志
dlz.db.log.show-run-sqlbooleanfalse是否输出展开参数后的 SQL
dlz.db.log.show-callerbooleanfalse是否把 SQL 调用方信息写入 MDC
dlz.db.log.slow-sql-thresholdlong0慢 SQL 阈值,单位毫秒;0 表示关闭

以下字段仍可绑定,但当前 8.0 核心执行路径没有读取它们。保留这些值不等于已经提供相应行为,新项目不应依赖:

配置键默认值当前状态
dlz.db.db-support空字符串兼容保留
dlz.db.blob-charsetGBK兼容保留
dlz.db.table-cache-time-1兼容保留

2. 最小配置示例

Spring Boot 在已有 spring.datasource 的基础上,可按需增加:

dlz:
db:
logic-delete-field: deleted
helper:
package-name: com.example.entity
auto-update: false
log:
show-run-sql: false
show-caller: false
show-result: false
slow-sql-threshold: 0

Solon 使用同一组 dlz.db.* 字段,但必须由应用或数据源插件向容器提供 DataSource Bean:

dlz:
db:
logic-delete-field: deleted
helper:
package-name: com.example.entity
auto-update: false
log:
show-run-sql: false
show-caller: false

完整的数据源和框架初始化方式见 Spring Boot 完整集成Solon 完整集成

3. 预设 SQL

sqllist 中的每个模式映射到 classpath*:sql/<pattern>.sql。默认 app/* 对应 classpath*:sql/app/*.sql。文件扩展名虽然是 .sql,内容使用 <sqlList> XML 结构。

use-db-sql: true 时,框架初始化期间执行 dlz.db.sql,并要求结果提供别名 ks。预设 SQL 在初始化时载入;当前没有面向业务代码的公共热重载 API。

4. 日志配置

  • show-run-sql 展开参数主要用于排查,不应当成安全的 SQL 重写结果。
  • show-result 可能输出大量数据或敏感信息,生产环境通常保持关闭。
  • show-caller 只负责把调用方写入 MDC;是否显示以及能否在 IDE 点击,取决于日志 pattern 和控制台。
  • 当前慢 SQL 判断会先经过 INFO 日志开关;需要慢 SQL 日志时,不要把对应 logger 直接限制为只允许 WARN。

5. 自动更新表结构

helper.auto-update 只适合开发或受控测试环境。它不是 Flyway、Liquibase 等可审核迁移工具的替代品,生产环境应保持 false

6. 编程式初始化配置

DB.config 主要是只依赖 core 时的手动启动入口,可在调用它自己的 init() 前注册插件、方言、预设 SQL、逻辑删除字段、数据源和执行器。DB.config.init() 完成后该配置对象不可变,再调用改变初始化状态的方法会抛出参数异常。

columnNameConvertor(...) 当前是兼容保留方法,源码尚未把传入函数接入名称转换执行路径。新代码不要依赖该方法;需要支持时应先补齐实现和测试,再把它列为有效能力。

Spring Boot Starter 和 Solon Plugin 会直接完成框架初始化,不读取 DB.config 中待手动初始化的私有配置。框架应用应使用容器 DataSourcedlz.db.*,普通业务项目不应调用 DB.config.init(),也不要期待其 setter 改变自动集成行为。