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-sql | boolean | false | 是否在初始化时从数据库加载预设 SQL |
dlz.db.logic-delete-field | 字符串 | deleted | 逻辑删除字段;对应列存在时启用逻辑删除 |
dlz.db.helper.package-name | 字符串 | com.dlz | 自动更新表结构时扫描的实体包 |
dlz.db.helper.auto-update | boolean | false | 是否在启动时扫描实体并自动更新表结构 |
dlz.db.log.show-result | boolean | false | 是否把查询结果写入日志 |
dlz.db.log.show-run-sql | boolean | false | 是否输出展开参数后的 SQL |
dlz.db.log.show-caller | boolean | false | 是否把 SQL 调用方信息写入 MDC |
dlz.db.log.slow-sql-threshold | long | 0 | 慢 SQL 阈值,单位毫秒;0 表示关闭 |
以下字段仍可绑定,但当前 8.0 核心执行路径没有读取它们。保留这些值不等于已经提供相应行为,新项目不应依赖:
| 配置键 | 默认值 | 当前状态 |
|---|---|---|
dlz.db.db-support | 空字符串 | 兼容保留 |
dlz.db.blob-charset | GBK | 兼容保留 |
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,并要求结果提供别名 k 和 s。预设 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 中待手动初始化的私有配置。框架应用应使用容器 DataSource 和 dlz.db.*,普通业务项目不应调用 DB.config.init(),也不要期待其 setter 改变自动集成行为。