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



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

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

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

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

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

@Default
@ApplicationScoped
public class ConfigurationHandlerImpl implements ConfigurationHandler {
    @Inject @ConfigurationValue("wishlist.test")
    private String test;
    @Inject
    public ConfigurationHandlerImpl(Logger logger) { ... }
}

问题是,当变量记录器获得一个值时,测试变量保持为空。看来我不能有这样的两个@Inject。解决方案是将测试变量添加到构造函数中。然后,记录器和测试都被正确分配了一个值,如下所示。

@Default
@ApplicationScoped
public class ConfigurationHandlerImpl implements ConfigurationHandler {
    @Inject
    public ConfigurationHandlerImpl(Logger logger, @ConfigurationValue("test.test") String test) { ... }
}

相关内容

最新更新