啟動jar包指定數據庫連接
這個實驗源於自己的一個好奇心。。。
之前寫有文章:jenkins指定庫連接,當時我領導以為切換數據庫連接就是一個命令的事,“加一,切庫”,手起刀落,然后我告訴他jenkins切換庫的邏輯:從gitlab拉代碼,替換數據庫連接文件,maven編譯,再發布到遠程機器。可能那會比較大聲,整個辦公室僅彌漫着我跟領導的“呼應”,坐我對面懂點運維的開發,小小聲給我回了句:其實可以不用那么麻煩,直接指定配置文件,不需要重新編譯。
為了驗證下是不是真的,今天忙完別的事特意測了下~~
參考鏈接:https://www.jb51.net/article/197938.htm
一、測試准備
話說公司內網有個快碼猿開發的應用:一個簡單的資產管理系統,是個jar包跑的,剛好最大化模仿之前的場景進行測試。
我特意解刨了jar包,然后在 BOOT-INF/classes/ 目錄下有個 application.yml,里面有連接的數據庫配置信息:yhwl_devops
navicat連該庫,找到一個好辨認的表:propertytype
剛好跟頁面”資產類型管理“對應了:
二、正式測試
1、mysql新建測試庫:ljytest_20220406
2、把源庫yhwl_devops 數據導出來,導入到我這個測試庫里,插入一條測試數據,如下:
3、復制application.yml,修改成連接測試數據庫
cp BOOT-INF/classes/application.yml /tmp/ljytest/application.yml
4、啟動jar包:
java -jar /root/devops-1.1.jar --spring.config.location=/tmp/ljytest/application.yml
看看多了最后一條記錄,代表修改數據庫連接是成功的。
恩,確實是沒有騙我~~
三、實驗總結
如果簡單的修改jar包運行的數據庫連接,且並非經常需要修改,確實啟動jar包直接指定想讀的配置文件是比較好的,也就是本文測試的方法;但是如果還要做更復雜的操作,例如改庫連接之前要備份庫數據,個人覺得還是用jenkins去弄比較好。
另外一個弄成jenkins的原因是為了節省運維人員的時間吧,想想測試人員一聲令下就讓改庫連接,得先停掉原服務,指定跑起來。。。還不如做成這種讓其自主選擇去點發布進而改庫連接,畢竟這樣改來改去,做多了煩不單只,也容易出錯,犧牲點時間等代碼編譯時間,其實也是值得的。