在Wildfly(Swarm)中加载外部配置文件的推荐方法是什么?

时间:2018-01-05 23:02:10

标签: configuration yaml wildfly external wildfly-swarm

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

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

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

1 个答案:

答案 0 :(得分:0)

由于 Ken 已经确认使用 @ConfigurationValue 是一个可行的解决方案,我现在找到了我的问题的答案。

一开始我尝试使用此注释,但它不起作用。我意识到我错误地使用 CDI 而不是 Wildfly Swarm 。我之前的代码如下所示:

Server started....
files post

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

@Default
@ApplicationScoped
public class ConfigurationHandlerImpl implements ConfigurationHandler {

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

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