最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用bat腳本啟動服務(wù)的代碼步驟

 更新時間:2025年10月14日 09:35:05   作者:盹貓  
在SpringBoot開發(fā)部署jar包時,可能需要配置大量的運行時環(huán)境,比如數(shù)據(jù)庫,JDK等,這時你可能會想到Docker部署服務(wù),但假如甲方就是想【一鍵啟動】服務(wù),應(yīng)該怎么辦呢?本篇文章就是記錄自己編寫bat(或.sh)腳本快速的實現(xiàn)SpringBoot的啟動,需要的朋友可以參考下

前言

在SpringBoot開發(fā)部署jar包時,可能需要配置大量的運行時環(huán)境,比如數(shù)據(jù)庫,JDK等。這時你可能會想到Docker部署服務(wù),但假如甲方就是想【一鍵啟動】服務(wù),什么都不用配置就可以用,應(yīng)該怎么辦呢?

本篇文章就是記錄自己編寫bat(或.sh)腳本快速的實現(xiàn)SpringBoot的啟動,完全獨立的部署啟動環(huán)境。

環(huán)境準(zhǔn)備

版本

名稱版本說明
JRE1.8JAVA運行時
Postgres15數(shù)據(jù)庫

這里需要用到Postgres數(shù)據(jù)庫(當(dāng)然也可以是Mysql),JRE1.8(也可以是其它版本,根據(jù)實際開發(fā)時用的JDK版本選擇)。

注意:這里使用的是資源文件,不使用安裝包,是直接調(diào)用資源文件內(nèi)的exe文件實現(xiàn)數(shù)據(jù)庫配置和JAR包運行。

代碼步驟

初始化并啟動數(shù)據(jù)庫

將Postgres數(shù)據(jù)庫資源文件放到一個文件夾內(nèi)(這里是pgsql文件夾),將要用到的初始化sql文件也放到該文件夾內(nèi)(這里放在sql文件夾)。

使用bat腳本(同一目錄)進行數(shù)據(jù)庫初始化,腳本如下:

@echo off
setlocal
 
set PG_HOME=.\pgsql
set DB_NAME= fire_qixia
set DB_PWD= 12345
set DB_PORT= 5433
set SQL_FILE= .\sql\pgsql.sql
 
echo [1/4] 正在初始化 PostgreSQL...
if not exist "%PG_HOME%\data\PG_VERSION" (
  echo 正在初始化 PostgreSQL 數(shù)據(jù)庫...
  "%PG_HOME%\bin\initdb.exe" -D "%PG_HOME%\data" -U postgres -E UTF8 --locale=C -W
  if errorlevel 1 (
    echo 數(shù)據(jù)庫初始化失??!
    exit /b 1
  )
  echo 數(shù)據(jù)庫初始化成功!
)
 
echo [2/4] 正在啟動 PostgreSQL...
start "" "%PG_HOME%\bin\pg_ctl.exe" -D "%PG_HOME%\data" -l "%PG_HOME%\pg.log" start -o "-p %DB_PORT%"
 
rem 等待幾秒確保服務(wù)啟動
ping -n 10 127.0.0.1 >nul
 
rem ==== 3. 創(chuàng)建數(shù)據(jù)庫 ====
echo [3/4] 正在創(chuàng)建數(shù)據(jù)庫 "%DB_NAME%" ...
"%PG_HOME%\bin\createdb.exe" -U postgres -p %DB_PORT% %DB_NAME%
if errorlevel 1 (
  echo 數(shù)據(jù)庫可能已存在,繼續(xù)...
)
 
rem ==== 4. 導(dǎo)入 SQL 文件 ====
if exist "%SQL_FILE%" (
  echo [4/4] 正在導(dǎo)入 SQL 文件 "%SQL_FILE%" ...
  "%PG_HOME%\bin\psql.exe" -U postgres -p %DB_PORT% -d %DB_NAME% -f "%SQL_FILE%"
  if errorlevel 1 (
    echo SQL 導(dǎo)入失??!
    exit /b 1
  )
  echo SQL 導(dǎo)入成功!
) else (
  echo 未找到 SQL 文件:%SQL_FILE%
)
 
endlocal

這里分別使用了pgsql/bin路徑下的exe文件進行數(shù)據(jù)庫的初始化,啟動,創(chuàng)建和sql導(dǎo)入操作(不同的數(shù)據(jù)庫,使用的.exe程序不同)

啟動JAR包服務(wù)

如法炮制,將JRE1.8的資源文件和SpringBoot打包完成的JAR包程序同樣復(fù)制到相同文件夾,使用下面的bat腳本啟動:

@echo off
setlocal
 
set JAVA_HOME=.\jdk
set SPRING_APP=.\打包的程序.jar
 
echo 啟動 Spring Boot 應(yīng)用...
"%JAVA_HOME%\bin\java.exe" -jar "%SPRING_APP%"
endlocal

部署時只需要將所有文件一起復(fù)制到部署的機器上(windows系統(tǒng)),雙擊我們自定義的bat腳本即可部署運行程序了。

示例目錄

.
├── config_db.bat     -----初始化并啟動數(shù)據(jù)庫的腳本
├── ext-config.yml    -----額外的配置
├── jdk                      ---jre運行環(huán)境
├── pgsql                  --- 數(shù)據(jù)庫資源文件
├── 程序.jar               ---打包的程序jar包
├── sql                      --- sql文件
├── start_db.bat         ---啟動數(shù)據(jù)庫腳本
├── start_service.bat     ---啟動服務(wù)腳本

疑問解答

如果我的 服務(wù)有些額外的配置需要如何快速修改呢?

可以在啟動SpringBoot應(yīng)用時在啟動命令后添加

--spring.config.location=classpath:application.yml,file:./ext-config.yml

這個命令行進行自定義的配置覆蓋,這時我們需要在相同的文件夾下新建一個ext-config.yml進行自定義。(和springboot內(nèi)的yml配置一樣)

我不想每次都初始化后啟動數(shù)據(jù)庫?

可以在文件夾內(nèi)單獨新建一個啟動的bat文件,用于啟動數(shù)據(jù)庫服務(wù),當(dāng)然也可以創(chuàng)建一個停止服務(wù)的bat文件,用于停止。

示例代碼:

@echo off
setlocal
 
set PG_HOME=.\pgsql
set DB_PORT=5433
 
echo 正在啟動 PostgreSQL...
start "" "%PG_HOME%\bin\pg_ctl.exe" -D "%PG_HOME%\data" -l "%PG_HOME%\pg.log" start -o "-p %DB_PORT%"
 
rem 等待幾秒確保服務(wù)啟動
ping -n 10 127.0.0.1 >nul
 
endlocal

總結(jié)

通過如上的操作配置,可以實現(xiàn)一個可以快速配置和啟動的服務(wù),即使是沒有任何技術(shù)基礎(chǔ)的也可以進行服務(wù)的配置和啟動,當(dāng)然如果你有更好的解決方案,歡迎在評論區(qū)留言!

到此這篇關(guān)于SpringBoot使用bat腳本啟動服務(wù)的代碼步驟的文章就介紹到這了,更多相關(guān)SpringBoot bat腳本啟動服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot中使用jpa下hibernate的ddl-auto方式

    springboot中使用jpa下hibernate的ddl-auto方式

    這篇文章主要介紹了springboot中使用jpa下hibernate的ddl-auto方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)

    JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)

    本文主要介紹了JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Java中實現(xiàn)線程的超時中斷方法實例

    Java中實現(xiàn)線程的超時中斷方法實例

    之前在使用Java實現(xiàn)熔斷降級組件的時候,需要實現(xiàn)接口請求的超時中斷,通過查找相關(guān)資料了解了相關(guān)的方法,下面這篇文章主要給大家介紹了關(guān)于Java中實現(xiàn)線程的超時中斷的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • Java使用XWPFDocument生成word文檔的示例代碼

    Java使用XWPFDocument生成word文檔的示例代碼

    XWPFDocument 是 Apache POI 庫中用于操作 .docx 格式 Word 文檔的核心類,本文將針對 XWPFDocument 進行詳細(xì)解析,涵蓋其核心功能、常見用法及實際開發(fā)中的關(guān)鍵點
    2025-12-12
  • Java事件處理機制(自定義事件)實例詳解

    Java事件處理機制(自定義事件)實例詳解

    這篇文章主要介紹了Java事件處理機制(自定義事件)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • SpringBoot項目屬性配置(application.properties、yml和yaml)

    SpringBoot項目屬性配置(application.properties、yml和yaml)

    SpringBoot支持多種配置文件格式,包括application.properties、yml和yaml,application.properties是鍵值對結(jié)構(gòu),常用于簡單配置,如設(shè)置服務(wù)器端口,yml和yaml文件格式相同,使用縮進表示層級,適合復(fù)雜配置,下面就來詳細(xì)的介紹一下
    2025-08-08
  • Java由淺入深通關(guān)抽象類與接口下

    Java由淺入深通關(guān)抽象類與接口下

    在類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類稱為抽象類,接口是Java中最重要的概念之一,它可以被理解為一種特殊的類,不同的是接口的成員沒有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java抽象類和接口,感興趣的朋友一起看看吧
    2022-04-04
  • JavaEE之SpringBoot配置文件的使用及說明

    JavaEE之SpringBoot配置文件的使用及說明

    本文主要介紹了Spring Boot中配置文件的使用,包括application.properties和application.yml兩種格式的配置文件的語法、讀取方式以及優(yōu)缺點,同時,還通過一個驗證碼案例練習(xí),展示了如何使用Spring Boot和hutool工具類包實現(xiàn)驗證碼功能
    2026-01-01
  • Java中的FutureTask實現(xiàn)異步任務(wù)代碼實例

    Java中的FutureTask實現(xiàn)異步任務(wù)代碼實例

    這篇文章主要介紹了Java中的FutureTask實現(xiàn)異步任務(wù)代碼實例,普通的線程執(zhí)行是無法獲取到執(zhí)行結(jié)果的,FutureTask?間接實現(xiàn)了?Runnable?和?Future?接口,可以得到子線程耗時操作的執(zhí)行結(jié)果,AsyncTask?異步任務(wù)就是使用了該機制,需要的朋友可以參考下
    2024-01-01
  • Springboot集成Springbrick實現(xiàn)動態(tài)插件的步驟詳解

    Springboot集成Springbrick實現(xiàn)動態(tài)插件的步驟詳解

    這篇文章主要介紹了Springboot集成Springbrick實現(xiàn)動態(tài)插件的詳細(xì)過程,文中的流程通過代碼示例介紹的非常詳細(xì),感興趣的同學(xué)可以參考一下
    2023-06-06

最新評論

汽车| 濮阳市| 阳新县| 老河口市| 温州市| 武邑县| 鄂州市| 体育| 类乌齐县| 宁阳县| 徐州市| 凤凰县| 永德县| 尼玛县| 汪清县| 汽车| 彩票| 旅游| 武义县| 崇阳县| 莲花县| 桐柏县| 中山市| 彰化市| 炉霍县| 三亚市| 嫩江县| 于都县| 伊通| 宜丰县| 洪洞县| 申扎县| 广州市| 阿拉善右旗| 枣庄市| 湖北省| 怀宁县| 尚义县| 尼木县| 梓潼县| 珠海市|