Class RuntimeUtils

java.lang.Object
io.github.theword.queqiao.core.utils.RuntimeUtils

public final class RuntimeUtils extends Object
Runtime 作用域辅助工具

保存"属于当前 QueQiao Runtime、但无法自然归属于某一个具体服务"的零碎辅助能力。

依赖方向:QueQiaoRuntime → RuntimeUtils → Config / Logger。 本类不得持有 QueQiaoRuntime, 否则会形成 Runtime 与 RuntimeUtils 之间的循环依赖。

不缓存配置:所有判定都在调用时读取当前 Config。 由于 Config.load() 是原地更新同一个实例,配置 reload 后本类自动生效, 不需要额外的 reload() / updateIgnoredCommands() 之类的同步入口, 也不会产生一份过期的本地配置副本。

logger 是构造期快照:logger 在构造时被捕获,之后不再变化。 因此 QueQiaoRuntime.setLogger(...) 之后,本类仍会用旧的 logger 输出 debug 日志。 这是与配置行为不同的一点(配置是原地更新,故 reload 后自动生效); 由于 setLogger 仅为兼容保留、生产代码没有调用方,该差异当前无实际影响。

Since:
0.7.0
  • Constructor Details

    • RuntimeUtils

      public RuntimeUtils(Config config, org.slf4j.Logger logger)
      构造 Runtime 作用域工具
      Parameters:
      config - 配置运行时状态,不得为 null
      logger - 日志实现,不得为 null
  • Method Details

    • isIgnoredCommand

      public String isIgnoredCommand(String command)
      判断是否为需要忽略的命令

      返回值语义保持不变(勿改为 boolean): 该方法是面向平台适配器的公开能力,调用方依赖"空串表示忽略"这一约定。

      Parameters:
      command - 命令
      Returns:
      如果是需要忽略的命令,返回空字符串;否则返回归一化后的命令
      Since:
      0.4.2
    • debugLog

      public void debugLog(String message)
      DEBUG 模式 用于输出更多内容
      Parameters:
      message - 消息
    • debugLog

      public void debugLog(String format, Object... args)
      DEBUG 模式 用于输出更多内容
      Parameters:
      format - 格式
      args - 参数
    • isDebugEnabled

      public boolean isDebugEnabled()
      判断是否可以输出调试日志

      对外暴露是为了让调用方在构造昂贵的日志参数(如脱敏后的请求体)之前先判断, 避免"日志关闭却仍付出构造代价"。

      Returns:
      true 表示开启了 debug