You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在VSCode的launch.json中配置Spring Boot多yml启动参数?

解决VSCode中Spring Boot调试时指定多配置文件的问题

我懂你遇到的困扰——在VSCode里调试Spring Boot应用,明明调试功能正常,但想指定加载两个配置文件时,把参数放到args里完全没效果对吧?这是因为你搞混了JVM系统参数应用程序参数的配置位置。

问题根源

launch.json里的args字段是用来传递给Spring Boot应用main方法的业务参数,而-D开头的参数属于JVM系统属性,必须放在vmArgs字段里才能被JVM识别生效。

修改后的launch.json配置

直接替换成下面的配置即可:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Debug Blog Rest",
      "request": "launch",
      "mainClass": "com.example.BlogRestApplication",
      "vmArgs": "-Dspring.config.location=classpath:/application.yml,classpath:/application-secret.yml"
    }
  ]
}

关键细节说明

  • vmArgs是专门配置JVM启动参数的字段,所有-D开头的系统属性、堆内存调整参数(比如-Xmx2g)都要放在这里
  • 如果同时需要传递应用程序自身的参数(比如--server.port=8081),可以保留args字段和vmArgs共存,示例如下:
    "vmArgs": "-Dspring.config.location=classpath:/application.yml,classpath:/application-secret.yml",
    "args": "--server.port=8081"
    
  • 注意配置文件路径的写法:classpath:/表示从类路径加载,两个文件用逗号分隔,不要添加多余空格

修改完成后重新启动调试,Spring就能正常加载你指定的两个application.yml配置文件了。

内容的提问来源于stack exchange,提问作者DJ House

火山引擎 最新活动