优化了配置文件

This commit is contained in:
张家训
2026-06-08 17:53:41 +08:00
parent 45c4911917
commit f5292ffa19
3 changed files with 34 additions and 96 deletions
+20 -20
View File
@@ -38,17 +38,17 @@ workutils/
```
src/main/java/com/example/workutils/
├── WorkUtilsApplication.java # 应用启动入口
├── config/
│ └── WorkUtilsProperties.java # 全局配置属性类
├── tool/
│ ├── Tool.java # 工具策略接口
│ ├── AbstractTool.java # 工具基类(模板方法模式)
│ ├── ToolRegistry.java # 工具注册中心
│ └── ConsoleHelper.java # 控制台交互工具类(消除重复I/O代码)
├── menu/
│ └── api/
│ └── MenuRunner.java # 交互式菜单运行器
└── biz/
├── system/ # 系统框架层
│ ├── ConsoleHelper.java # 控制台交互工具类(消除重复I/O代码)
│ ├── config/
│ │ └── WorkUtilsProperties.java # 全局配置属性类
│ ├── menu/
│ │ └── MenuRunner.java # 交互式菜单运行器
│ └── tool/
│ ├── Tool.java # 工具策略接口
│ ├── AbstractTool.java # 工具基类(模板方法模式)
│ └── ToolRegistry.java # 工具注册中心
└── biz/ # 业务模块层
├── git/ # Git操作业务模块
│ ├── config/
│ │ └── GitOptimizationConfig.java # Git性能优化配置
@@ -112,22 +112,22 @@ src/main/java/com/example/workutils/
- 支持命令行模式,通过 `ToolRegistry.getToolByCommand()` 按命令名分发到对应 Tool
- 不依赖任何具体业务 Service,完全解耦
#### `WorkUtilsProperties.java`
---
### 3.2 系统框架层(`system/`)
#### `config/WorkUtilsProperties.java`
- **作用**: 全局配置属性类,绑定 `application.yml` 中 `workutils` 前缀的配置
- **功能**:
- 管理基础目录、配置目录、导出目录路径
- 提供带日期时间戳的导出文件路径生成
- 管理工具启用/禁用白名单和黑名单
---
### 3.2 工具框架层(`tool/`)
#### `Tool.java`
#### `tool/Tool.java`
- **作用**: 工具策略接口,所有可插拔工具需实现此接口
- **核心方法**: `getId()`、`getName()`、`getMenuOptions()`、`execute()`、`getCommandName()`(命令行模式命令名)、`executeCommand()`(命令行模式执行)
#### `AbstractTool.java`
#### `tool/AbstractTool.java`
- **作用**: 工具基类,使用模板方法模式
- **功能**: 提供标准菜单交互循环(显示菜单→读取选择→处理选择→循环),子类只需实现 `handleChoice()`
- **控制台I/O**: 委托给 `ConsoleHelper`,子类通过 `printMenuTitle()`、`displayMenu()` 等 protected 方法间接调用
@@ -136,13 +136,13 @@ src/main/java/com/example/workutils/
- **作用**: 控制台交互工具类(静态方法)
- **功能**: 统一 `MenuRunner` 和 `AbstractTool` 中重复的控制台 I/O 方法,消除代码重复
#### `ToolRegistry.java`
#### `tool/ToolRegistry.java`
- **作用**: 工具注册中心,Spring 自动发现 `Tool` Bean
- **功能**: 根据配置过滤启用/禁用工具,支持白名单(enabled)和黑名单(disabled)模式,同时维护按命令名(`getCommandName()`)的索引,支持命令行模式按命令名分发
---
### 3.3 菜单层(`menu/`)
### 3.3 菜单层(`system/menu/`)
#### `MenuRunner.java`
- **作用**: 交互式主菜单运行器