我试图确定应用程序所在的环境,但使用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注释值?
任何帮助将不胜感激!
答案 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}")
批注来拾取它。
希望这对其他人有帮助!