gpt4 book ai didi

spring - 如何在 Spring Boot 中访问命令行传递的属性

转载 作者:行者123 更新时间:2023-12-04 15:58:25 26 4
gpt4 key购买 nike

在我们的环境中,服务器监听的端口总是由命令行参数指定:

java -jar myweb.jar --server.port=1024

我们怎样才能得到这个值呢?在我的 AppSiteController.java 中,我尝试使用:

@Value("${server.port}")
private static String serverPort;

public static void main(String[] args) {
System.out.println(serverPort);
SpringApplication.run(AppSiteController.class, args);
}

当在命令行上正确指定值时返回 null。

谢谢。

最佳答案

对于 Spring Boot 2.x,您可以覆盖系统属性,如下所示:

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085

默认情况下,Spring Boot 将命令行参数转换为属性并将它们添加为环境变量。

您可以从应用程序的主要方法访问命令行参数:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
for(String arg:args) {
System.out.println(arg);
}
SpringApplication.run(Application.class, args);
}
}

这将打印我们从命令行传递给应用程序的参数。

关于spring - 如何在 Spring Boot 中访问命令行传递的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51079036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com