Files
homeutils/src/main/java/com/example/workutils/tool/Tool.java
T
2026-06-08 17:40:57 +08:00

54 lines
1.2 KiB
Java

package com.example.workutils.tool;
import java.util.Scanner;
/**
* 工具策略接口
* 所有可插拔工具实现此接口,Spring自动发现Tool Bean
*/
public interface Tool {
/**
* 工具唯一标识(用于配置启用/禁用)
* 示例: "scan", "mybatis", "batch", "git-health", "mybatis-generator"
*/
String getId();
/**
* 菜单显示名称
* 示例: "关键词扫描", "MyBatis导出"
*/
String getName();
/**
* 子菜单选项
* 返回空数组表示无子菜单
*/
String[] getMenuOptions();
/**
* 命令行模式下的命令名,如 "sql", "scan", "batch"
* 返回空字符串表示不支持命令行模式
*/
default String getCommandName() {
return "";
}
/**
* 执行工具的交互会话
*
* @param scanner 控制台输入
*/
void execute(Scanner scanner);
/**
* 命令行模式执行(无交互)
* 默认实现打印不支持提示
*
* @param args 命令行参数(不含命令名本身)
*/
default void executeCommand(String... args) throws Exception {
System.out.println("工具 [" + getName() + "] 不支持命令行模式");
}
}