【问题标题】:What is the recommended way to load an external configuration file in Wildfly (Swarm)?在 Wildfly (Swarm) 中加载外部配置文件的推荐方法是什么?
【发布时间】:2018-01-05 23:02:10
【问题描述】:

我希望能够在启动 Wildfly Swarm 应用程序时指定一个外部配置文件。推荐的方法是什么?

我已经看到像 @ConfigValue@Configured 这样的注释被提及,但我还没有让它们起作用,而且大多数提到它们的地方都是关于开发分数的文档。我还能使用它们吗?似乎很难找到有关它们的任何文档。

我是否可以访问 Wildfly Swarm 应用程序启动时提供的参数?在这种情况下,我可以将配置文件的路径指定为参数,然后自己解析文件。

【问题讨论】:

标签: configuration yaml wildfly external wildfly-swarm


【解决方案1】:

感谢 Ken 证实使用 @ConfigurationValue 是一个可行的解决方案,我现在找到了我的问题的答案。

一开始我尝试使用这个注解但是没有用。我意识到我错误地使用了 CDI 而不是 Wildfly Swarm。我之前的代码如下所示:

@Default
@ApplicationScoped
public class ConfigurationHandlerImpl implements ConfigurationHandler {

    @Inject @ConfigurationValue("wishlist.test")
    private String test;

    @Inject
    public ConfigurationHandlerImpl(Logger logger) { ... }
}

问题在于,当变量 logger 获得值时,test 变量保持 null。似乎我不能有两个像这样的 @Inject 。解决方案是将 test 变量添加到构造函数中。然后 loggertest 都被正确分配了一个值,如下所示。

@Default
@ApplicationScoped
public class ConfigurationHandlerImpl implements ConfigurationHandler {

    @Inject
    public ConfigurationHandlerImpl(Logger logger, @ConfigurationValue("test.test") String test) { ... }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多