根据 Weblogic 环境变量确定 Spring 引导中的环境

Determine Environment in Spring Boot based on Weblogic environment variable

我正在尝试确定应用程序所在的环境,但使用 Weblogic 在启动时通过以下行设置的环境变量:

-Denvironment=DEV

我的配置如下class:

package ie.gov.agriculture.cds;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {

    @Value("${environment}")
    private String env;

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}

在application.properties中,如果我定义了属性"environment",那么它似乎可以工作,但这不是我想要实现的。 看来我需要用指向 weblogic 服务器的内容替换 PropertySource 注释值?

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

如果它是一个环境变量,您可以访问:

String env = System.getProperty("environment");

因此您不需要在 application.properties

中将其设置为 属性

尝试用以下行替换。我看到您的代码 $ 中缺少

@Value("${environment}")

所以解决方案是我在我的 weblogic 服务器配置中缺少 属性,这就是它没有被拾取的原因。

在我的 weblogic 服务器的 domains\%APPCODE%\bin 文件夹中,在 setDomainEnv.cmd 文件中,我包含了环境 属性.

设置JAVA_OPTIONS=-Dssoautologin.appcode=%APPCODE% -Denvironment=DESKTOP

然后 Spring 可以使用 @Value("${environment}") 注释来拾取它。

希望这对其他人有帮助!