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

时间:2018-07-05 10:56:02

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

我试图确定应用程序所在的环境,但使用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中,如果我定义属性“ environment”,那么它似乎可以工作,但这不是我想要实现的。 看来我需要用指向Weblogic服务器的内容替换PropertySource注释值?

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

如果它是环境变量,则可以访问:

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

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

答案 1 :(得分:0)

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

@Value("${environment}")

答案 2 :(得分:0)

因此解决方案是我在Weblogic服务器配置中缺少该属性,这就是为什么未选择该属性的原因。

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

set JAVA_OPTIONS = -Dssoautologin.appcode =%APPCODE%-Denvironment = DESKTOP

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

希望这对其他人有帮助!