探索 IntelliJ IDEA 中 Spring Boot 运行配置
前言
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 开发体验更加顺畅。
相关文章:

探索 IntelliJ IDEA 中 Spring Boot 运行配置
前言 IntelliJ IDEA 作为一款功能强大的集成开发环境(IDE),为 Spring Boot 应用提供了丰富的运行配置选项,定义了如何在 IntelliJ IDEA 中运行 Spring Boot 应用程序,当从主类文件运行应用程序时,IDE 将创建…...
三除数枚举
给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。 如果存在整数 k ,满足 n k * m ,那么整数 m 就是 n 的一个 除数 。 输入:n 4 输出:true 解释:4 有三…...
【051】基于51单片机温度计【Proteus仿真+Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统DS18B20温度传感器LCD1602液晶显示按键设置蜂鸣器LED灯。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片; 2、采用DS18B20温度传感器测量温度,并且通过LCD1602实时显示温度;…...

[Java]微服务之服务保护
雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩 雪崩问题产生的原因是什么? 微服务相互调用,服务提供者出现故障或阻塞。服务调用者没有做好异常处理,导致自身故障。调用链中的所有服…...

自动驾驶目标检测融合全貌
1、early fusion 早期融合,特点用到几何空间转换3d到2d或者2d到3d的转换,用像素找点云或者用点云找像素。 2、deep fusion 深度融合,也是特征级别融合,也叫多模态融合,如bevfusion范式 3、late fusion 晚融合&#x…...
消息框(Message Box)的测试方法和测试用例
我来帮你了解消息框(Message Box)的测试方法和测试用例的编写。 我已经创建了一个测试用例示例,让我为你解释消息框测试的主要方面: 测试维度: 功能性测试:验证消息框的基本功能是否正常样式测试:确认不同类型消息框…...

Ubuntu 包管理
APT&dpkg 查看已安装包 查看所有已经安装的包 dpkg -l 查找包 apt search <package_name>搜索软件包列表,找到与搜索关键字匹配的包 dpkg与grep结合查找特定的包 dpkg -s <package>:查看某个安装包的详细信息 安装包 apt安装命令 更新…...

[Ubuntu] linux之Ubuntu18.04的下载及在虚拟机中详细安装过程(附有下载链接)
前言 ubuntu 链接:https://pan.quark.cn/s/283509d0d36e 提取码:dfT1 链接失效(可能被官方和谐)可评论或私信我重发 下载压缩包后解压 !!安装路径不要有中文 下载后解压得到.iso文件,不要放在…...

ffmpeg安装(windows)
ffmpeg安装-windows 前言ffmpeg安装路径安装说明 前言 ffmpeg的安装也是开箱即用的,并没有小码哥说的那么难 ffmpeg安装路径 这就下载好了! 安装说明 将上面的bin目录加入到环境变量,然后在cmd中测试一下: C:\Users\12114\Desktop\test\TaskmgrPlayer\x64\Debug>ffmpe…...

服务器数据恢复—raid6阵列硬盘被误重组为raid5阵列的数据恢复案例
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分…...
linux内核编译启动总结
linux kernel 编译 升级汇总 写在前面内核编译获取kernel代码开始前的准备工作 编译过程1\.解压与净化将下载好的linux内核解压至/usr/src 2\. 得到源代码后,将其净化3\. 配置要进行编译的内核4.编译内核. (15分钟)5.编译模块.方法1:方法2: 6…...

Android Studio的AI工具插件使用介绍
Android Studio的AI工具插件使用介绍 一、前言 Android Studio 的 AI 工具插件具有诸多重要作用,以下是一些常见的方面: 代码生成与自动补全 代码优化与重构 代码解读 学习与知识获取 智能搜索与资源推荐实际使用中可以添加注释,解读某段代…...

本地部署 WireGuard 无需公网 IP 实现异地组网
WireGuard 是一个高性能、极简且易于配置的开源虚拟组网协议。使用路由侠内网穿透使其相互通讯。 第一步,服务端(假设为公司电脑)和客户端(假设为公司外的电脑)安装部署 WireGuard 1,点此下载(…...
asyncio.ensure_future 与 asyncio.create_task:Python异步编程中的选择
asyncio.ensure_future 与 asyncio.create_task:Python异步编程中的选择 引言asyncio.ensure_futureasyncio.create_task两者的区别参数接受范围任务调度的保证代码可读性 哪个更好?使用asyncio.create_task使用asyncio.ensure_future 结论参考 引言 在…...

CTF之密码学(密码特征分析)
一.MD5,sha1,HMAC,NTLM 1.MD5:MD5一般由32/16位的数字(0-9)和字母(a-f)组成的字符串 2.sha1:这种加密的密文特征跟MD5差不多,只不过位数是40(sha256:64位;sha512:128位) 3.HMAC:这…...

JVM调优篇之JVM基础入门AND字节码文件解读
目录 Java程序编译class文件内容常量池附录-访问标识表附录-常量池类型列表 Java程序编译 Java文件通过编译成class文件后,通过JVM虚拟机解释字节码文件转为操作系统执行的二进制码运行。 规范 Java虚拟机有自己的一套规范,遵循这套规范,任…...

EXCEL截取某一列从第一个字符开始到特定字符结束的字符串到新的一列
使用EXCEL中的公式进行特定截取 假设列A是一组产品的编码,我们需要的数据是“-”之前的字段。 我们需要在B1单元格输入公式“LEFT(A1,SEARCH("-",A1)-1)”然后选中B1至B4单元格,按“CTRLD”向下填充,就可以得出其它几行“-”之前的…...

数据库期末复习题库
1. Mysql日志功能有哪些? 记录日常操作和错误信息,以便了解Mysql数据库的运行情况,日常操作,错误信息和进行相关的优化。 2. 数据库有哪些备份方法 完全备份:全部都备份一遍表备份:只提取数据库中的数据࿰…...

私有库gitea安装
一 gitea是什么 Gitea是一款自助Git服务,简单来说,就是可以一个私有的github。 搭建很容易。 Gitea依赖于Git。 类似Gitea的还有GitHub、Gitee、GitLab等。 以下是安装步骤。 二 安装sqilite 参考: 在windows上安装sqlite 三 安装git…...
关于最近win11不能使用ie,而不能使用考试客户端的解决方法
弄ie的那个我感觉是非常难的,所以我的是另一种的方法 下载360浏览器(不是360全家桶)360安全浏览器-全面保护上网安全,4亿用户共同选择(上面的是官网,不要下载错了,还有安装界面注意不要勾选一下…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...