我在.bash_profile中定义了一个变量,如下所示:
export PROFILE=local
现在,我想在我的Spring Boot应用程序中获取此值,以根据该值加载不同的配置文件。
为此,我使用了@Value注释,但是spring无法解析profile的值:
@Value("${profile}")
private String environment;
我错过了什么?
编辑: 这段代码是从Eclipse中的JUnit测试(作为桌面应用程序发布)启动的
答案 0 :(得分:0)
您应该在属性文件中添加spring.profiles.active: ENV_NAME
。或者,您可以使用-Dspring.profiles.active=ENV_NAME
从命令行传递它。
编辑:
您还可以使用Map<String, String> getenv = System.getenv();
来获取代码中的所有环境变量。然后,您将可以访问所有环境变量。
答案 1 :(得分:0)
您可以在此类Environment
的帮助下完成该任务。
@Autowired
Environment environment;
然后
String profile = ((StandardServletEnvironment) environment).getSystemEnvironment().get("PROFILE").toString();