根据 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}")
注释来拾取它。
希望这对其他人有帮助!
我正在尝试确定应用程序所在的环境,但使用 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}")
注释来拾取它。
希望这对其他人有帮助!