idea 运行 Spring Boot 项目启动慢怎么解决(2020-12-06)

本文介绍了一种通过修改macOS系统的hosts文件来加快IntelliJ IDEA中SpringBoot项目启动速度的方法。具体步骤包括使用sudo命令编辑/etc/hosts文件,并调整localhost的设置。

看同事用windows系统idea启动Spring Boot 项目比我快多了,于是在网上搜索一波,整理了一下。

idea 运行 Spring Boot 项目启动慢怎么解决?

 

步骤如下

$hostname

MacBook-Pro.local

$sudo vim /etc/hosts

我的mac-pro默认显示如下:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost
127.0.0.1     activate.xmind.net
127.0.0.1     practivate.xmind.net
127.0.0.1     lm.licenses.xmind.net
127.0.0.1     lmlicenses.xmind.net
127.0.0.1     www.xmind.net
127.0.0.1     na1r.services.xmind.net

http://github.com 204.232.175.94 http://gist.github.com 107.21.116.220
http://help.github.com 207.97.227.252 http://nodeload.github.com 199.27.76.130
http://raw.github.com 107.22.3.110 http://status.github.com 204.232.175.78
http://training.github.com 207.97.227.243 http://www.github.com

修改后如下

具体编辑操作如下:

按i,进行编辑,delete删除localhost,替换为MacBook-Pro.local,

中间间隔为两个tab,然后按esc键,然后输入  :wq!   按enter键保存退出

 

本来想使用 sudo open /etc/hosts 命令用文本打开进行编辑,

貌似不好改,需要一些权限!

 

参考博文:

https://blog.youkuaiyun.com/wyyl1/article/details/84785237

https://blog.youkuaiyun.com/little_person/article/details/80863442

 

<think>我们正在讨论的是如何在IntelliJIDEA中为SpringBoot项目创建桌面快捷方式来同时启动数据库和应用程序。根据之前的引用信息,我们知道在Spring Boot项目中通常需要配置数据库连接(如MySQL),并且有时需要处理数据库连接问题(如引用3中提到的allowPublicKeyRetrieval=true配置)。但是,创建桌面快捷方式并不是IntelliJ IDEA内置的功能,而是需要我们在操作系统层面(如Windows)创建快捷方式,并编写脚本或命令来同时启动数据库服务和Spring Boot应用。步骤概述:1.确保数据库服务(如MySQL)可以独立启动(通常作为系统服务安装)。2.编写一个脚本(例如批处理文件.bat用于Windows),该脚本:a.启动数据库服务(如果数据库服务没有自动启动的话)。b.启动SpringBoot应用程序(通过运行Maven或Gradle命令,或者直接运行打包后的jar文件)。3.创建该脚本的桌面快捷方式。然而,在IntelliJIDEA中,我们通常通过IDE运行项目,但桌面快捷方式应该是独立于IDE的,因此我们需要将项目打包成可执行的jar文件,然后通过java-jar命令运行。详细步骤:第一步:配置SpringBoot项目以打包成可执行jar-在pom.xml中确保有spring-boot-maven-plugin插件,这样可以使用`mvnpackage`打包。-打包后会在target目录下生成一个可执行的jar文件。第二步:编写启动脚本(以Windows为例)-创建一个批处理文件(例如:start_app.bat),内容如下:```@echo offREM启动MySQL服务(如果MySQL服务未运行,且需要手动启动。如果MySQL服务已设置为自动启动,则可以省略)net startmysqlREM等待几秒确保数据库服务启动完成timeout /t5 /nobreakREM启动Spring Boot应用java-jar"D:\path\to\your\project\target\your-application.jar"```注意:需要将`D:\path\to\your\project\target\your-application.jar`替换为实际的jar文件路径。第三步:创建桌面快捷方式-右键单击上面创建的批处理文件,选择“发送到”->“桌面快捷方式”。-然后可以重命名这个快捷方式,比如“启动我的应用”。但是,上述方法需要手动打包项目,每次代码更新后都需要重新打包。如果希望在开发过程中使用快捷方式启动(同时启动数据库和运行IDE中的项目),则可以通过脚本启动IntelliJIDEA运行项目,但这通常不实用,因为IDE启动,且项目运行在IDE中。另一种思路:创建快捷方式直接启动IntelliJIDEA并自动运行项目(同时启动数据库)?-在IntelliJ IDEA中,我们可以配置运行配置(RunConfiguration)来启动项目,但启动数据库(如MySQL服务)通常需要管理员权限,且一般作为系统服务在后台运行-我们可以将数据库服务设置为自动启动(这样开机就启动了),然后只需要创建启动IntelliJ IDEA并自动运行项目的快捷方式。创建启动IntelliJ IDEA运行项目的快捷方式:-目标:启动IntelliJ IDEA并打开项目,然后自动运行指定的运行配置。-但是,IntelliJIDEA的命令行启动运行项目比较复杂。通常,我们可以通过命令行打开项目,但自动运行配置需要借助IDE的插件或脚本(如使用IntelliJIDEA的Headless模式?但一般不推荐)。因此,更常见的做法是:-将数据库服务设置为自动启动(这样我们就不需要在每次启动应用时手动启动数据库)。-然后,我们只需要一个启动SpringBoot应用的快捷方式(即运行打包后的jar)。或者,如果我们在开发过程中,每次都是通过IntelliJIDEA运行项目,那么我们可以:-创建一个快捷方式,用于启动IntelliJIDEA(并打开项目),然后我们在IDE中手动运行项目(因为数据库服务已经自动启动)。总结两种方案:1.生产/独立运行:将数据库服务设为自动启动,然后创建快捷方式运行打包好的jar。2.开发过程:将数据库服务设为自动启动,然后创建快捷方式快速打开IntelliJIDEA(和项目),然后手动运行项目。下面分别说明如何创建这两种快捷方式:方案一:独立运行(无需打开IDE)-前提:项目已经打包成jar(需要每次更新后重新打包)-创建批处理文件(如上所述)并创建快捷方式。方案二:开发过程(快速打开IDE和项目-创建IntelliJIDEA的快捷方式到桌面(如果已有,可以直接使用)。-修改这个快捷方式的目标,使其在启动时直接打开特定项目。例如:目标:"C:\Program Files\JetBrains\IntelliJIDEA\bin\idea64.exe""D:\path\to\your\project"-这样双击快捷方式就会打开指定的项目。然后,我们还需要在IDE中手动点击运行按钮(或者配置一个运行配置的快捷键)。但是,如何做到打开项目后自动运行?IntelliJIDEA没有直接提供这样的命令行参数。不过,我们可以通过以下步骤模拟:-使用AutoHotkey等工具编写脚本,在打开IDEA后,自动发送按键(比如运行配置的快捷键)来启动项目。但这种方法比较脆弱,因为IDE的启动时间不确定,且不同版本快捷键可能不同。因此,在开发过程中,更实际的做法是:-确保数据库服务已启动(可以设置为系统自动启动)。-创建IntelliJIDEA的快捷方式(直接打开项目)。-进入IDE后,手动运行项目(或者使用IDE提供的“运行”按钮)。另外,关于数据库的启动,如果不想设置为自动启动,也可以修改批处理文件,以管理员权限启动数据库服务,然后启动IDE。但是,以管理员权限启动服务需要UAC确认(除非关闭UAC),所以不太方便。根据引用3,我们在Spring Boot项目中配置数据库连接时,可能需要在连接字符串中加入`allowPublicKeyRetrieval=true`等参数,以确保连接正常。因此,针对用户的问题,我们给出两种场景的解决方案,并重点说明独立运行的快捷方式创建方法(因为这是用户明确要求的)。详细步骤(方案一:独立运行):1.打包SpringBoot项目:在项目根目录下运行命令(或通过IDE的Maven工具):```mvnclean package```打包后,在target目录下会生成一个jar文件(例如:myproject-0.0.1-SNAPSHOT.jar)。2.编写批处理脚本(start.bat):假设:-MySQL服务名称为"mysql"(可以在Windows服务管理中查看实际名称)。-jar文件路径为"D:\myproject\target\myproject-0.0.1-SNAPSHOT.jar"。脚本内容:```batch@echooffecho正在启动MySQL服务...netstart mysqlREM等待5秒timeout /t5 /nobreak >nulecho正在启动SpringBoot应用...java -jar "D:\myproject\target\myproject-0.0.1-SNAPSHOT.jar"```注意:启动MySQL服务需要管理员权限,因此这个批处理文件必须以管理员身份运行。但是,直接双击快捷方式不会以管理员身份运行,所以我们需要配置快捷方式以管理员身份运行。3.创建批处理文件的快捷方式,并设置为管理员身份运行-右键创建好的快捷方式,选择“属性”。-在“快捷方式”选项卡,点击“高级”按钮。-勾选“用管理员身份运行”。-确定。4.这样,双击快捷方式就会弹出UAC确认,确认后就会启动MySQL服务,然后启动Spring Boot应用。但是,这种方法每次都要UAC确认。为了避免,可以将MySQL服务设置为自动启动(这样就不需要每次手动启动,也不需要管理员权限),然后批处理文件可以简化为:```batch@echooffecho正在启动SpringBoot应用...java -jar "D:\myproject\target\myproject-0.0.1-SNAPSHOT.jar"```方案二(开发过程)的快捷方式创建:1.创建IntelliJ IDEA的快捷方式(如果桌面上没有,可以从开始菜单拖一个到桌面)。2.右键快捷方式->属性,在“目标”栏中,在idea64.exe路径后面加上项目路径,例如:"C:\Program Files\JetBrains\IntelliJIDEA2021.1\bin\idea64.exe" "D:\myproject"3.确定。4.另外,为了启动数据库,如果数据库服务没有设置为自动启动,我们可以单独创建一个启动数据库服务的快捷方式(也需要管理员权限):创建批处理文件(start_mysql.bat):netstart mysql然后为其创建快捷方式,并设置为“以管理员身份运行”。这样,在开发时,我们可以先双击“启动MySQL”快捷方式(确认UAC),然后双击“打开IDEA”快捷方式,然后在IDE中运行项目。结论:根据用户的需求,我们提供了两种方案。如果用户希望一个快捷方式同时启动数据库和应用程序(独立运行,不打开IDE),则采用方案一。如果用户希望在开发过程中快速打开IDE,然后手动运行,则采用方案二。注意:以上步骤基于Windows操作系统。对于Linux或macOS,方法类似,但脚本写法不同。最后,考虑到用户可能希望更便捷的方式,我们还可以推荐使用Docker来管理数据库,这样可以通过docker-compose同时启动数据库和SpringBoot应用,然后为docker-compose命令创建快捷方式。但这需要安装Docker,且项目配置会有所不同。由于问题中没有提到Docker,我们暂不展开。因此,回答如下:</think>### 在 IntelliJ IDEA 中为 Spring Boot 项目创建桌面快捷方式 要为 Spring Boot 项目创建桌面快捷方式(同时启动数据库和应用程序),需要结合操作系统级脚本和 Spring Boot 配置。以下是详细步骤: --- #### **步骤 1:创建启动脚本** 创建一个批处理文件(Windows)或 Shell 脚本(Linux/macOS)来同时启动数据库服务和 Spring Boot 应用。 **示例批处理文件 (`start_app.bat`)**: ```batch @echo off REM 启动 MySQL 服务(根据实际服务名调整) net start mysql REM 等待数据库初始化(根据需要调整时间) timeout /t 10 /nobreak REM 启动 Spring Boot 应用(使用 Maven 或打包的 JAR) cd /d D:\your-project-path mvn spring-boot:run REM 或者直接运行打包后的 JAR REM java -jar target/your-project-0.0.1-SNAPSHOT.jar ``` > **注意**: > - 替换 `D:\your-project-path` 为实际项目路径 > - 确认 MySQL 服务名(通过 `services.msc` 查看) --- #### **步骤 2:配置 Spring Boot 数据库连接** 在 `application.properties` 中确保数据库配置正确(参考引用[3]): ```properties # 引用[3] 的配置建议 spring.datasource.url=jdbc:mysql://localhost:3306/db_name?allowPublicKeyRetrieval=true&useSSL=false spring.datasource.username=root spring.datasource.password=123456 ``` --- #### **步骤 3:创建桌面快捷方式** 1. **Windows 系统**: - 右键桌面 → 新建 → 快捷方式 - 输入脚本路径:`cmd /c start "" "D:\path\to\start_app.bat"` - 命名快捷方式(如 `启动项目+数据库`) 2. **Linux/macOS**: - 创建 `.desktop` 文件(Linux)或 AppleScript(macOS) - 指向 Shell 脚本:`/path/to/start_app.sh` --- #### **步骤 4:权限配置(可选)** - **管理员权限**:若需自动启动数据库服务,右键快捷方式 → 属性 → 勾选 **以管理员身份运行** - **环境变量**:确保脚本中的 `java` 和 `mvn` 命令在系统 PATH 中 --- #### **验证流程** 1. 双击快捷方式 2. 脚本自动执行: - 启动 MySQL 服务 - 运行 Spring Boot 应用(通过 Maven 或 JAR) 3. 检查控制台输出,确认数据库连接和应用启动成功 > **关键点**:数据库服务必须与脚本中的名称一致(如 `mysql` 或 `MySQL80`),否则需修改脚本中的 `net start` 命令[^3]。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值