【发布时间】:2015-08-05 09:48:07
【问题描述】:
我在命令提示符下运行一个 spring boot jar,传递 jvm 参数,如
java -jar myjarname.jar -Denvironment=dev
或
java -jar myjarname.jar --environment=dev
并尝试使用 System.getProperty("environment") 在我的应用程序中读取值 environment。但它给了我空值。请帮忙!!
【问题讨论】:
-
--environment=dev不会显示为系统属性。使用-Denvironment=dev的形式是正确的。但是你为什么要使用System.getProperty("environment")来阅读它呢?使用@Value-injection 更容易。 -
你是对的。但我有一个依赖 jar,他们正在使用 System.getproperty() 方法读取。如果我使用 mvn spring-boot:run 命令,-Denvironment 方式有效。我需要使用 java 命令运行,如果我传递这个参数,它就不起作用..
-
请检查github.com/deichten/spring-boot-env-vars 我设置了一个超级简单的演示项目,它对我有用。重要提示:尝试使用
java -Denvironment=dev -jar myjarname.jar启动应用程序。原因是 jar 之后的所有东西都作为参数传递给 Spring 应用程序。 -
谢谢@hrrgttnchml..你是对的..我也是从另一个弹簧链接找到的..spring.io/blog/2014/03/07/deploying-spring-boot-applications
标签: java spring spring-boot