Documentation
¶
Overview ¶
Package config 负责加载 base-code.yaml 并补齐约定默认值。 设计目标:约定优于配置——layers/包名/idType 等不再配置,仅留必填的工程包与数据库连接。
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ClassMappingKeys = []string{
"po", "mapper", "service", "service-impl", "query", "converter",
"req-dto", "resp-dto", "query-req-dto", "page-query-req-dto", "update-by-query-req-dto",
"api", "api-impl",
}
ClassMappingKeys 是 class-mapping 的全部合法键:generator.Layers 中非 Resource 层的层名 (mapper-xml 没有自己的类,其文件名与 namespace 跟随 mapper 的类映射,故不在此列)。 注意:与 internal/generator 的 Layers 表保持一致——generator 侧有一致性测试把关。
var PackageMappingKeys = []string{
"model.po", "mapper", "mapper-xml", "service", "service.impl", "model.query",
"converter", "model.dto.req", "model.dto.resp", "api", "api.impl",
}
PackageMappingKeys 是 package-mapping 的全部合法键:generator.Layers 去重后的 10 个 Java 包后缀 + 特殊键 mapper-xml(XML 目录独立映射,不随 java mapper 移动)。 注意:与 internal/generator 的 Layers 表保持一致——generator 侧有一致性测试把关, 新增层时两处同步修改。
Functions ¶
This section is empty.
Types ¶
type Api ¶ added in v0.2.0
Api 表示生成 API 层所需的服务标识配置。 service-name 填入 @FeignClient(name=...)(注册中心应用名); base-path 是所有 API 端点的基础路径前缀。 两者缺省均从 base-package 末段派生(见 applyDefaults)。
type AutoFill ¶
type AutoFill struct {
InsertColumns []string `yaml:"insert-columns"`
UpdateColumns []string `yaml:"update-columns"`
}
AutoFill 表示自动填充列的约定。
type Config ¶
type Config struct {
Tables []string `yaml:"tables"` // 生成目标表;flag(CSV)与配置文件(列表)二选一,合并后必填
BasePackage string `yaml:"base-package"`
OutputRoot string `yaml:"output-root"`
ResourcesRoot string `yaml:"resources-root"` // 可选;mapper-xml 输出根,缺省由 OutputRoot 推导
Author string `yaml:"author"`
UseJakarta *bool `yaml:"use-jakarta"` // 指针:区分「未配置」与「配置为 false」
DateType string `yaml:"date-type"`
WithApi *bool `yaml:"with-api"` // 指针:区分「未配置」(缺省 false,不生成 API 层)与「显式 true」
Api Api `yaml:"api"`
Datasource Datasource `yaml:"datasource"`
AutoFill AutoFill `yaml:"auto-fill"`
// PackageMapping 包映射:键=约定包后缀(含特殊键 mapper-xml),值=相对 base-package 的目标后缀。
// 空 map / nil = 全约定默认。合法键见 PackageMappingKeys。
PackageMapping map[string]string `yaml:"package-mapping"`
// ClassMapping 类名映射:键=层名(13 个有类的层,mapper-xml 无类不算),
// 值=含恰一个 {} 占位符的模式({} 代表表名大驼峰,如 I{}Service → ISysUserService)。
// 空 map / nil = 全约定默认。合法键见 ClassMappingKeys;变量名不跟随类名(保持模型派生)。
ClassMapping map[string]string `yaml:"class-mapping"`
}
Config 是生成器的全部配置。 Go 小白知识点:结构体标签 `yaml:"..."` 告诉 yaml 库 YAML 键如何对应字段。
type Datasource ¶
type Datasource struct {
Dialect string `yaml:"dialect"`
Host string `yaml:"host"`
Port int `yaml:"port"`
Username string `yaml:"username"`
Password string `yaml:"password"`
Database string `yaml:"database"`
}
Datasource 表示数据库连接配置。
type Overrides ¶ added in v0.3.0
type Overrides struct {
Tables *[]string
BasePackage *string
OutputRoot *string
ResourcesRoot *string
Author *string
UseJakarta *bool
DateType *string
WithApi *bool
Dialect *string
DbHost *string
DbPort *int
DbUser *string
DbPassword *string
DbName *string
ServiceName *string
BasePath *string
AutoFillInsert *[]string
AutoFillUpdate *[]string
PackageMapping *map[string]string
ClassMapping *map[string]string
}
Overrides 表示命令行内联配置对文件配置的逐项覆盖。 Go 小白知识点:全指针字段——nil 表示「命令行未提供该项」,与零值(""、0、false)区分开, 这样 --use-jakarta=false、--db-port 0 这类「显式传零值」也能正确表达。