优化了配置文件

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
@@ -1,7 +1,6 @@
package com.example.workutils.biz.mybatis.export;
import com.example.workutils.biz.scanner.config.ScanConfigBO;
import com.example.workutils.system.config.WorkUtilsProperties;
import com.example.workutils.biz.mybatis.model.MybatisTagBO;
import com.example.workutils.biz.output.OutputService;
import com.example.workutils.biz.scanner.service.FileOperationService;
@@ -36,9 +35,6 @@ public class MyBatisExportService {
@Autowired
private OutputService outputService;
@Autowired
private WorkUtilsProperties properties;
// ==================== 常量定义 ====================
/** SQL标签类型 */
@@ -12,8 +12,7 @@ import java.time.format.DateTimeFormatter;
import java.util.List;
/**
* 工具集配置属性
* 绑定application.yml或application.properties中以workutils为前缀的配置项
* 工具集配置属性(配置项在 application.yml 中定义)
*
* @author system
* @version 1.0
@@ -23,108 +22,51 @@ import java.util.List;
@Data
public class WorkUtilsProperties {
/** 基础目录,默认为D:/workspace/workutils */
private String baseDirectory = "D:/workspace/workutils";
/** 基础目录 */
private String baseDirectory;
/** 配置文件目录,相对于基础目录 */
private String configDirectory = "src/main/resources/config";
private String configDirectory;
/** 导出文件根目录 */
private String exportDirectory = "D:/workspace/workutils/export";
private String exportDirectory;
/** 项目路径配置文件名 */
private String projectPathsFile = "代码仓库项目路径.txt";
private String projectPathsFile;
/** 工具启用/禁用配置 */
private ToolsConfig tools;
/** 日期格式:yyyyMMdd */
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
// ==================== 路径解析方法 ====================
/** 时间格式:yyyyMMddHHmmss */
private static final DateTimeFormatter TIMESTAMP_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
/**
* 获取项目路径配置文件的完整路径
*
* @return 项目路径配置文件路径
*/
public Path getProjectPathsFilePath() {
return Paths.get(baseDirectory, configDirectory, projectPathsFile);
}
/**
* 获取导出根目录
*
* @return 导出根目录路径
*/
public Path getExportBasePath() {
return Paths.get(exportDirectory);
}
/**
* 获取当天的导出目录
* 格式:导出根目录/yyyyMMdd/
*
* @return 当天日期目录路径
*/
public Path getTodayExportPath() {
String dateDir = LocalDate.now().format(DATE_FORMATTER);
return getExportBasePath().resolve(dateDir);
return getExportBasePath().resolve(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
}
/**
* 生成带时间戳的导出文件名
* 格式:prefix_yyyyMMddHHmmss.extension
*
* @param prefix 文件名前缀
* @param extension 文件扩展名
* @return 带时间戳的文件名
*/
public String generateExportFileName(String prefix, String extension) {
String timestamp = LocalDateTime.now().format(TIMESTAMP_FORMATTER);
return String.format("%s_%s.%s", prefix, timestamp, extension);
}
/**
* 解析导出文件的完整路径
* 格式:导出根目录/yyyyMMdd/prefix_yyyyMMddHHmmss.extension
*
* @param fileName 文件名
* @return 文件的完整路径
*/
public Path resolveExportPath(String fileName) {
return getTodayExportPath().resolve(fileName);
}
/**
* 解析导出文件的完整路径(带时间戳)
* 格式:导出根目录/yyyyMMdd/prefix_yyyyMMddHHmmss.extension
*
* @param prefix 文件名前缀
* @param extension 文件扩展名
* @return 文件的完整路径
*/
public Path resolveExportPath(String prefix, String extension) {
String fileName = generateExportFileName(prefix, extension);
return getTodayExportPath().resolve(fileName);
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
return resolveExportPath(String.format("%s_%s.%s", prefix, timestamp, extension));
}
/**
* 工具启用/禁用配置
*/
// ==================== 内部配置类 ====================
@Data
public static class ToolsConfig {
/**
* 启用的工具ID列表,设置后仅加载这些工具
* 示例: ["scan", "mybatis", "batch", "git-health", "mybatis-generator"]
*/
/** 启用的工具ID列表(白名单),设置后仅加载这些工具 */
private List<String> enabled;
/**
* 禁用的工具ID列表,设置后排除这些工具
* enabled优先级高于disabled
*/
/** 禁用的工具ID列表(黑名单),enabled优先级高于disabled */
private List<String> disabled;
}
}