Zeebe-Broker必须从配置TOML文件的路径开始。但是,在春季上下文中,我只有在运行时有此信息(是一个CLI参数)。如何定义我的弹簧配置(基于注释)以提供以给定路径初始化的经纪人的bean?
找到了一个解决方案:命令行args可以通过以下方式访问:
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]);
}
};