将 toml 文件名传递给 spring 上下文

passing toml file name to spring context

zeebe-broker 必须以配置 toml 文件的路径开头。但是,在 spring 上下文中,我只有在运行时才有此信息(它是一个 cli 参数)。 我如何定义我的 spring 配置(基于注释)来为使用给定路径初始化的代理提供一个 bean?

找到解决方案:可以通过以下方式访问命令行参数:

 static Function<Environment, Optional<String>> tomlFileFromEnv = environment -> {
    String[] args = environment.getProperty("nonOptionArgs", String[].class, new String[0]);
    if (args == null || args.length == 0) {
        return Optional.empty();
    } else if (args.length > 1) {
        throw new IllegalArgumentException("requires exactly one cli argument, the tomlFile.");
    } else {
        return Optional.of(args[0]);
    }

};