Spring boot 有没有办法在Websphere中传递特定于应用程序的属性?

Spring boot 有没有办法在Websphere中传递特定于应用程序的属性?,spring-boot,jvm,arguments,websphere,Spring Boot,Jvm,Arguments,Websphere,我们有一个websphereapplicationserver,其中部署了多个应用程序。所有应用程序都使用一个公共属性(键),但具有不同的值。例如: spring.profiles.active=一个应用程序中的测试,spring.profiles.active=其他应用程序中的UAT。 在Websphere中启动时是否可以将这些不同的值传递给应用程序 如果我们在通用JVM参数文本框中的JVM选项中设置这些值,那么对于我们不想要的所有应用程序,这些值都将变得相同 在websphere中的应用程序

我们有一个websphereapplicationserver,其中部署了多个应用程序。所有应用程序都使用一个公共属性(键),但具有不同的值。例如: spring.profiles.active=一个应用程序中的测试,spring.profiles.active=其他应用程序中的UAT。 在Websphere中启动时是否可以将这些不同的值传递给应用程序

如果我们在通用JVM参数文本框中的JVM选项中设置这些值,那么对于我们不想要的所有应用程序,这些值都将变得相同

在websphere中的应用程序级别设置这些属性,以便在应用程序启动时- 对于应用程序1-spring.profiles.active=测试 对于应用程序2-spring.profiles.active=UAT

表示可以在每个web应用程序的WebApplicationInitializer中设置spring.profiles.active属性。然后,每个应用程序都可以从系统属性中读取自己的特定命名属性。或者,如果使用Liberty(问题没有在传统的WebSphere和Liberty之间指定),那么您可以使用Micropofile Config定义一个公共名称的属性,该名称通过appProperties在每个应用程序中定义不同,例如,如中所示。但是您仍然需要WebApplicationInitializer来启动

例如,如下所示:

Config config = ConfigProvider.getConfig();
servletContext.setInitParameter(
    "spring.profiles.active",
    config.getValue("ProfilesActive", String.class));
server.xml:

<server>
  <featureManager>
    <feature>mpConfig-1.3</feature>
    .. other features
  </featureManager>

  <application location="app1.war">
    <appProperties>
      <property name="ProfilesActive" value="test"/>
    </appProperties>    
  </application>

  <application location="app2.war">
    <appProperties>
      <property name="ProfilesActive" value="UAT"/>
    </appProperties>    
  </application>
</server>

mpConfig-1.3
.. 其他特征

您使用的是哪个Websphere版本如果它们是Java系统属性(通过system.getProperty获得),那么答案是“否”-系统属性对于整个JVM是通用的。如果有另一种机制来设置它们(如属性文件),那么答案应该是“是”,但取决于该机制是什么。