当前位置: 首页 > 面试题库 >

wildfly:从配置目录读取属性

百里海超
2023-03-14
问题内容

我正在尝试从我的wildfly配置文件夹中的属性文件中读取特定于部署的信息。我尝试了这个:

@Singleton
@Startup
public class DeploymentConfiguration {

  protected Properties props;

  @PostConstruct
  public void readConfig() {

    props = new Properties();
    try {
      props.load(getClass().getClassLoader().getResourceAsStream("my.properties"));
    } catch (IOException e) {
      // ... whatever
    }
  }

但是显然这不起作用,因为配置文件夹不再位于类路径中。现在我找不到一种简单的方法。我最喜欢的是这样的:

@InjectProperties("my.properties")
protected Properties props;

到目前为止,我在网上找到的唯一解决方案是制作自己的OSGi模块,但是我相信必须有一种更简单的方法来实现(一个没有OSGi!)。谁能告诉我如何?


问题答案:

如果要从配置目录(例如$WILDFLY_HOME/standalone/configurationdomain/configuration)中显式读取文件,则有一个系统属性,其中包含路径。只需System.getProperty("jboss.server.config.dir");添加您的文件名并将其附加到该文件名即可。

但是,您不会将其作为资源阅读,所以…

String fileName = System.getProperty("jboss.server.config.dir") + "/my.properties";
try(FileInputStream fis = new FileInputStream(fileName)) {
  properties.load(fis);
}

然后将为您加载文件。

另外,由于WildFly不再提供OSGi支持,因此我不知道创建OSGi模块将如何为您提供帮助。



 类似资料:
  • 你好,我在我的项目中使用Spring Boot和Hikari进行db连接。spinger引导版本是2.2.5.RELEASE,Hikari是3.4.2。但是,当我运行我的项目时,它总是使用Hikari默认配置值,而不是使用我的属性文件中的值。这是我的属性: 这是我在应用程序配置中的数据源: 下面是输出:10:23:19.050[main]DEBUG com . zax xer . hikari .

  • 读取目录 读取目录 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:读取目录 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在函数

  • 是否可以通过@Value(Spring 5)读取数组的片段? 比如: 输入数据。属性: 阅读 输出

  • 我目前在spring boot 2.3中有以下实现。但当我将其迁移到spring boot 2.4时。未从配置服务器读取属性。 密码 bootstrap.yml 应用yml公司 application.yml配置服务器 这个实现在spring boot 2.3中运行良好。但是在升级到spring boot 2.4之后,在启动时出现了以下错误。

  • 我在Scala中使用Spring Boot。我想通过@ConfigurationProperties注释读取带有Scala类型的case类的属性。我已经知道我将无法注释Scala case类,因为Spring Boot不支持基于构造的属性注入。但至少我希望将集合(列表和映射)从配置映射到基于Scala的类型。这样我就可以编写一个配置类: 并编写一个配置文件application.yml如下: 这有

  • 我正在使用Java的发送SMS。我已经加载了log4j jar文件,并将文件放置在正确的位置,但它仍然无法读取它,并得到以下异常: 例外文本: