如何在SpringBOOT中传递JVM参数

Spr*_*ing 7 spring spring-mvc spring-boot

我想在主弹簧引导类中传递JVM参数,我们将在其中启动spring引导应用程序.

你能否分享一下如何在spring boot应用程序中设置JVM参数?

我尝试了以下选项,没有运气

System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "8080");
Run Code Online (Sandbox Code Playgroud)

或者你可以用它来弹簧靴

bootRun {
    systemProperties "property1": "value1", "property2": "value2"
}
Run Code Online (Sandbox Code Playgroud)

小智 23

使用-DargumentName ie添加JVM参数

-DargumentName="value1"
Run Code Online (Sandbox Code Playgroud)

然后在spring应用程序中,您可以通过执行以下操作来检索值:

@Value("${argumentName}")
private String myVariable
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Blo*_*ock 13

Spring Boot有一个非常复杂的环境变量和配置属性管理.你可以做一些简单的事情来通过命令行传递值为"bar"的foo.

java -jar app.jar --foo="bar"
Run Code Online (Sandbox Code Playgroud)

如果您还没有,那么下面的链接包含了您在Spring Boot应用程序中进行外部化配置所需的一切:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

更新:

如果您正在运行Spring Boot应用程序,则应始终使用以下模式运行它:

$ java -jar <jar-name> [--key1="value1"]... [--keyN="valueN"]
Run Code Online (Sandbox Code Playgroud)

并且不使用此处其他一些注释中建议的命令行.


Krz*_*zyk 7

您可能会在app.conf文件中添加的 JVM 参数:

export JAVA_OPTS='-Dyour_param=1234'
Run Code Online (Sandbox Code Playgroud)

资料来源:弹簧文档


小智 5

您可以在启动应用程序时使用 -D 开关设置系统属性

java -DsomeProperty=123 your.package.name.YourMainClassName
Run Code Online (Sandbox Code Playgroud)

稍后在您的代码中,您可以通过调用简单地获取属性值

System.getPropetry("someProperty")
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以像这样运行您的应用程序:

$ java -server -Dmyproperty=blabla -jar myapp.jar
Run Code Online (Sandbox Code Playgroud)

您可以在代码中访问 myproperty 的值。

  • 备注:在 `-jar myapp.jar` 之后提供选项将不会考虑它们。 (5认同)