【问题标题】:Determine Environment in Spring Boot based on Weblogic environment variableSpring Boot中根据Weblogic环境变量判断环境
【发布时间】:2018-07-05 10:56:02
【问题描述】:

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

-Denvironment=DEV

我在下面有一个配置类:

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 中,如果我定义属性“环境”,那么它似乎可以工作,但这不是我想要实现的。 看来我需要用指向 weblogic 服务器的东西替换 PropertySource 注释值?

任何帮助将不胜感激!

【问题讨论】:

    标签: java spring-boot weblogic environment spring-java-config


    【解决方案1】:

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

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

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

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

    希望这对其他人有帮助!

    【讨论】:

      【解决方案2】:

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

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

      因此您不需要在 application.properties 中将其设置为属性

      【讨论】:

        【解决方案3】:

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

        @Value("${environment}")
        

        【讨论】:

        • 糟糕,打错字了,抱歉。现已编辑。
        猜你喜欢
        • 2016-11-15
        • 2022-01-25
        • 2019-08-03
        • 2016-12-30
        • 2017-12-01
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 2019-08-03
        相关资源
        最近更新 更多