如何在 IDEA 中在启动 Spring Boot 项目时加参数

该文章已生成可运行项目,

如何在 IDEA 中在启动 Spring Boot 项目时加参数

在日常开发中,我们经常需要在启动 Spring Boot 项目的时候,临时修改一些参数,例如 端口号运行环境(profile)日志级别 等等。除了在 application.yml 文件里修改,我们还可以通过在 IDEA 启动配置中添加参数的方式来实现。这种方式更加灵活,适合临时调试或者本地开发时使用。

本文将详细介绍在 IDEA 中为 Spring Boot 启动项目加参数的方法。


一、在 application.yml 中配置端口号(默认方式)

application.yml 文件中可以直接写配置,例如修改端口号:

server:
  port: 8080

启动时项目会监听 8080 端口。
不过这种方式是写死在配置文件里的,如果要频繁切换端口或者测试不同环境,就不够灵活了。


二、通过 IDEA 启动配置添加参数

在 IDEA 里,点击右上角的运行/调试配置,选择 Edit Configurations,可以看到两个常用的参数输入框:

  • VM Options
  • Program arguments

在这里插入图片描述

这两者都可以传参,但作用范围不同。


1. VM Options(JVM 参数)

在 VM Options 中添加参数时,使用 -D 前缀,例如:

-Dserver.port=8082 -Dspring.profiles.active=dev -Dlogging.level.root=DEBUG

特点:

  • -Dkey=value 形式,会作为 JVM 系统属性
  • Spring Boot 会自动读取并覆盖配置文件里的值。
  • 也可以用来配置一些 JVM 相关的参数(比如内存、GC 等)。

等价于在代码中调用:

System.getProperty("server.port");

2. Program arguments(程序参数)

在 Program arguments 中添加参数时,使用 -- 前缀,例如:

--server.port=8083 --spring.profiles.active=test --logging.level.root=DEBUG

特点:

  • --key=value 形式,Spring Boot 启动时会自动解析。
  • 用来覆盖 application.ymlapplication.properties 中的配置。
  • 常用来传递业务相关参数,例如运行环境、端口号、日志级别等。

三、优先级说明

Spring Boot 对配置的加载有优先级,大体顺序如下(从低到高):

  1. application.yml / application.properties(默认配置文件)
  2. application-{profile}.yml(不同环境的配置文件,例如 application-dev.yml
  3. Program arguments--server.port=8083
  4. VM Options-Dserver.port=8082

👉 如果同一个参数在多个地方都设置了,优先级高的会覆盖低的
比如:在 application.yml 中设置端口是 8080,在 Program arguments 中传 --server.port=8083,最终端口就是 8083


四、推荐用法

  • 业务参数(端口、profile、日志级别等):用 --,写在 Program arguments
  • JVM 参数(堆大小、GC 配置、系统属性等):用 -D,写在 VM Options

这样既符合习惯,也便于区分不同类型的配置。


五、总结

在 IDEA 中启动 Spring Boot 项目时,可以通过以下方式传递参数:

  1. 修改配置文件application.yml):适合固定配置。
  2. VM Options(-D):传递 JVM 系统属性或 Spring Boot 参数。
  3. Program arguments(–):传递 Spring Boot 参数,覆盖配置文件。

通过合理使用这三种方式,就能更加灵活地控制 Spring Boot 项目的启动参数。


本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值