前言
IntelliJ IDEA 作为一款功能强大的集成开发环境(IDE),为 Spring Boot 应用提供了丰富的运行配置选项,定义了如何在 IntelliJ IDEA 中运行 Spring Boot 应用程序,当从主类文件运行应用程序时,IDE 将创建一个 Spring Boot 运行配置,帮助开发者便捷地启动、调试和监控应用。在本文中,将逐一解析这些选项及其在 Spring Boot 开发中的作用。
创建 Spring Boot 运行配置
- 在主菜单中,转到 "Run | Edit Configurations"。
- 在 "Run/Debug Configurations" 对话框中,单击"+"并选择 Spring Boot。
配置参数 | 说明 |
---|---|
Name | 为运行配置指定名称,以便在编辑或运行时快速识别它。 |
Run on | 选择要在其中运行配置的目标环境。 除在本地运行应用程序外,还可以选择通过 SSH 在远程服务器或 Docker 容器中运行应用程序。 |
Store as project file | 将运行配置保存到可与其他团队成员共享的文件中,默认位置为 .idea/runConfigurations 。 但是,如果不想共享 .idea 目录,则可以将配置保存到项目中的任何其他目录。 默认情况下处于禁用状态,IntelliJ IDEA 将运行配置设置存储在 .idea/workspace.xml 中。 |
配置运行选项
单击 Modify options 以选择用于运行配置的其他选项,如下图所示。
Spring Boot
以下选项特定于正在运行的 Spring Boot 应用程序:
项目 | 描述 |
---|---|
Active profiles | 指定应用启动时要激活的 Spring 配置文件,通常以 .yml 或 .properties 结尾。 这些配置文件可以按需覆盖主配置文件中的属性,实现环境特定的配置。 |
Enable debug output | 启用 debug 输出的日志记录。-Ddebug |
Hide banner | 关闭 Spring Boot 启动时显示的 ASCII 图形欢迎界面,使控制台输出更加简洁。 |
Disable launch optimization | 禁用 Java 虚拟机(JVM)的启动优化,便于更快地启动应用进行调试。 可以对开发环境保持启用状态,但对生产环境将其禁用。 默认情况下,通过在 JVM 选项来启用:XX:TieredStopAtLevel=1 -noverify |
Disable JMX endpoints | 取消启用 Java 管理扩展(JMX)代理,避免远程监控和管理功能。 在不需要 JMX 监控的情况下,禁用它可减少资源消耗和潜在的安全风险。 |
On 'Update' action | 指定在修改代码并希望更新正在运行的应用程序时要执行的操作: Do nothing : 不执行任何操作,适用于不需要自动重新部署的应用场景。 Update resources :更新所有已修改的资源文件。 Update classes and resources :更新修改的资源文件并重新编译更改的 Java 类 Update trigger file :更新触发器文件 Hot swap classes and update trigger file if failed :热插拔类和失败时更新触发器 |
On frame deactivation | 指定从 IntelliJ IDEA 切换到其他应用程序(例如,Web 浏览器)时要执行的操作: Do nothing :不执行任何操作,避免因误操作导致应用停止。 Update resources :更新所有已修改的资源文件。 Update classes and resources :更新类和资源。 |
Override configuration properties | 通过将任何配置属性作为 JVM 选项传递来覆盖该属性。 |
Operating System
以下选项与操作系统相关:
项目 | 描述 |
---|---|
Allow multiple instances | 允许同时运行同一应用的多个实例,每个实例使用独立的运行配置。 默认情况下,此选项处于禁用状态,这意味着当运行配置时,配置的其他活动会话将终止。 |
Working directory | 指定应用的运行工作目录,影响相对路径的解析以及日志、临时文件等的存放位置。 默认情况下,IntelliJ IDEA 使用项目根目录作为工作目录。 |
Environment variables | 指定运行此配置时所需的环境变量的名称和值,影响应用的行为和依赖组件的配置。 |
Java
以下选项特定于 Spring 应用程序的 Java 编译器和运行时:
项目 | 描述 |
---|---|
Do not build before run | 立即运行应用程序,而无需启动构建过程。 适用于已确保代码编译无误,或希望手动控制构建的情况。 |
Use classpath of module | 指定使用哪个模块的类路径来运行应用,适用于多模块项目。 |
Modify classpath | 指定另一个 Classpath 或选择要从 Classpath 中排除的依赖项。 当运行时与编译 Classpath 不同时,此选项是必需的。 |
VM options | 添加 JVM 参数,如内存分配、系统属性等,以调整 JVM 行为。 |
Program arguments | 为应用主类传递命令行参数,供应用代码在运行时读取和使用 |
Add dependencies with "provided" scope to classpath | 将依赖管理中 provided 作用域的依赖项添加到运行时类路径, 确保依赖的 Servlet 容器等外部环境提供的库在 IDE 中也能正常工作。 默认情况下,此选项在 Spring Boot 运行配置中处于启用状态。 |
Shorten command line | 如果 Classpath 太长,或者VM 参数超出了 OS 命令行长度限制, 则该方法将用于缩短命令行。 |
Logs
以下选项与记录此配置的执行有关。
项目 | 描述 |
---|---|
Specify logs to be shown in console | 指定哪些日志文件的内容应在控制台显示,方便实时监控应用日志。 |
Save console output to file | 将控制台输出保存到指定文件,便于后期分析和排查问题。 可以手动输入路径,或单击浏览按钮,并在打开的对话框中指向所需的位置。 |
Show console when a message is printed to stdout | 当标准输出有内容打印时,自动打开控制台窗口。 |
Show console when a message is printed to stderr | 当标准错误输出有内容打印时,自动打开控制台窗口。 |
Code Coverage
以下选项与代码覆盖率相关。
项目 | 描述 |
---|---|
Specify classes and packages | 指定应用启动时只扫描和加载特定的类和包,加速启动过程,适用于大型项目或测试特定模块。 |
Exclude classes and packages | 排除应用启动时不应扫描和加载的类和包,避免不必要的处理和潜在冲突。 |
Before Launch
在此区域中,可以指定在启动选定的 "run/debug" 配置之前要执行的任务,任务将按照它们在列表中的显示顺序执行。
项目 | 描述 |
---|---|
Add before launch task | 配置应用启动前需要执行的任务,如编译、Maven构建、数据库迁移等。 |
Open run/debug tool window when started | 启动应用后自动打开 run/debug 窗口,便于观察应用状态和控制运行 |
Focus run/debug tool window when started | 运行测试时,将焦点放在 Run configuration tool 窗口上。 |
Show the run/debug configuration settings before start | 在应用启动前显示当前运行配置的详细设置,确认无误后再启动。 |
配置启动前可以执行的任务有如下几种:
配置属性 | 说明 |
---|---|
Launch Web Browser | 选择此选项可启动浏览器。在打开的对话框中,选择浏览器的类型并提供起始 URL。 此外,请指定是否希望使用 JavaScript 调试器启动浏览器。 |
Run External tool | 运行外部应用程序。在打开的对话框中,选择要运行的一个或多个应用程序。 如果尚未在 IntelliJ IDEA 中定义,请添加其定义。 |
Run Another Configuration | 选择以执行另一个运行/调试配置,并等待它完成,然后再启动当前配置。 |
Run Remote External Tool | 添加远程 SSH 外部工具。 |
Run Gradle task | 运行 Gradle 任务。在打开的对话框中,指定任务并根据需要提供其他配置。 |
Build | 选择编译指定的模块,将执行 Build Module 操作。 如果在编译过程中发生错误,IntelliJ IDEA 不会尝试启动 run/debug 配置。 |
Build Project | 选择编译整个项目,将执行 Build Project 操作。 如果在编译过程中发生错误,IntelliJ IDEA 不会尝试启动 run/debug 配置。 |
Build, no error check | 与 Build 选项相同,但 IntelliJ IDEA 将尝试启动 run/debug 配置,而不管编译结果如何。 |
Build Artifacts | 选择此选项可构建一个或多个工件。在打开的对话框中,选择应构建的一个或多个工件。 |
Run Maven Goal | 选择此选项可运行 Maven 目标。在打开的对话框中,选择要运行的目标。 |
Run Grunt task | 选择此选项以运行 Grunt 任务。了解既可,笔者基本没用到过。 |
Run gulp task | 选择此选项以运行 Gulp 任务。了解既可,笔者基本没用到过。 |
Run npm script | 选择此选项可执行 npm 脚本。 |
Compile TypeScript | 运行内置的 TypeScript 编译器,从而确保所做的所有更改都反映在生成的 JavaScript 文件中。 |
Disconnect Data Source | 如果要在 run/debug 配置之前中断与数据源的连接,请选择此选项。 |
总结
通过上述说明,我们成功地在了解了 IntelliJ IDEA 中 Spring Boot 运行配置。IntelliJ IDEA 提供的 Spring Boot 运行配置选项赋予了开发者精细控制应用运行环境、日志输出、依赖管理、类加载策略、预启动任务等方方面面的能力,极大地提升了开发效率和灵活性。了解并合理运用这些选项,能使 Spring Boot 开发体验更加顺畅。