如何在 Wildfly 中加载外部 属性 文件到 Spring 引导

How to load an external property file to Spring Boot in Wildfly

我想知道如何在 Wildfly 9 中加载我的应用程序 运行ning 的外部 属性 作为 WAR,我试图向 Wildfly 添加一个 java 参数执行但应用程序似乎无法识别属性。

-Dspring.config.location=file:///C:\Temp\config\application.properties,classpath:application.properties

有什么方法可以让 Spring Boot 读取外部 属性 文件吗?我正在尝试加载 运行 一个 Spring 引导应用程序作为 Wildfly 中的 WAR。

如有任何帮助,我将不胜感激。

谢谢。

在我的 linux 系统中,我在 standalone.xml:

中有一个条目
<system-properties>
    <property name="spring.config.location" value="file:/opt/jboss/wildfly/standalone/configuration/"/>
</system-properties>

我刚刚在这里定义了目录,所以它必须以“/”结尾。

在目录“/opt/jboss/wildfly/standalone/configuration/”中有我的application.yml.

如果您的 springboot 应用程序 运行 在 Wildfly 中,您不需要将 standalone.xml 作为外部文件读取。

直接用System.getProperty(PROPERTY_NAME);

得到属性值

我知道现在回答有点晚了,但也许这有帮助:

  • 在您的 deployment-descriptor (web.xml) 中,创建指向 spring 配置位置文件的 environment-variables,即

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns="http://java.sun.com/xml/ns/javaee"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
               version="3.0">
          <env-entry>
              <env-entry-name>spring.config.location</env-entry-name>
              <env-entry-type>java.lang.String</env-entry-type>
              <env-entry-value>file:[path-to-file]/[your-properties-file] 
    </env-entry-value>
          </env-entry>
      </web-app>
    

正在开发 Wildfly 25.0.0