config

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package config 负责加载 base-code.yaml 并补齐约定默认值。 设计目标:约定优于配置——layers/包名/idType 等不再配置,仅留必填的工程包与数据库连接。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Api added in v0.2.0

type Api struct {
	ServiceName string `yaml:"service-name"`
	BasePath    string `yaml:"base-path"`
}

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"`
}

Config 是生成器的全部配置。 Go 小白知识点:结构体标签 `yaml:"..."` 告诉 yaml 库 YAML 键如何对应字段。

func Load

func Load(path string) (Config, error)

Load 读取并解析配置文件,随后补齐约定默认值。 LoadWithOverrides 的薄封装:必须有文件、无内联覆盖,保持既有调用方兼容。

func LoadWithOverrides added in v0.3.0

func LoadWithOverrides(path string, requireFile bool, ov Overrides) (Config, error)

LoadWithOverrides 加载配置并叠加命令行内联覆盖。 requireFile=false 时文件不存在不视为错误(纯 flag 模式,agent 一行直达); true 时文件必须存在(用户显式 --config,不静默忽略)。 优先级:显式 flag > 配置文件 > 约定默认值。

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
}

Overrides 表示命令行内联配置对文件配置的逐项覆盖。 Go 小白知识点:全指针字段——nil 表示「命令行未提供该项」,与零值(""、0、false)区分开, 这样 --use-jakarta=false、--db-port 0 这类「显式传零值」也能正确表达。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL