spring boot 打包成jar 在伺服器上執行
這次上面又給釋出了個任務 ,搞一箇中間件管理的後臺,開放兩個介面
一個是用於認證,一個用於流量上傳,
由於只有3天時間,時間太過緊迫,於是前後端設計都自己來做
前端頁面找了個bootstrap的頁面來搞
我在這裡找了個demo開始用
http://sudasuta.com/bootstrap-admin-templates.html
然後用了熱部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId >spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
在pom.xml里加上這個開發工具
我的開發工具是IDEA 2017
在setting 裡面搜尋complier 把自動編譯勾上
然後按Shift+Ctrl+Alt+/,選擇Registry
把complier.automake.allow.when.app.runing 勾上
重啟一下IDEA和專案就可以自動編譯了.
ctrl+s 儲存按下後,idea處理會重啟springboot 速度挺快的 一般都是1s,2s的樣子,
但是經常 會有起不來的情況,那麼就要手動按重啟按鈕了
或者mvn spring-boot :run
在開發過程中有遇到如何生成隨機32位字串的問題.
/**
* 生成32位編碼
* @return string
*/
public static String getUUID(){
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
return uuid;
}
用UUID工具包就好了.
然後在資料庫設計中某個欄位要是唯一一個的
ALTER TABLE `t_user` ADD unique (`username`);
t_user 是表名, username是要唯一得到欄位,就好了
然後spring boot 啟動經常佔用埠
我們可以把埠改了 application.properties 檔案裡寫 server.port=9000
然後將spring boot 專案打包
<groupId>springboot</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>1.0.1-SNAPSHOT</version>
<name>MiddleWareManage</name>
<packaging>jar</packaging>
在pom.xml檔案裡packaging 可以改WAR 或著JAR
<build>
<plugins>
<!--下面是將應用打包釋出需要增加的外掛-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然後這裡要設定一下打包
然後終端輸入命令
mvn package
它會在
Building jar: E:\middlewareManage\target\springboot-mybatis-1.0.1-SNAPSHOT.jar
然後這就是你打好的包
然後上傳到伺服器上面
我用的secureCRT 上傳用的是rz命令,它會自動跳一個選擇檔案視窗,你選擇上傳就好了
上傳好了之後開始執行,
我一開始才用的是
java -jar spring-boot-1.0-SNAPSHOT.jar
這種方式, 發現可以執行的, 但是當我關掉終端的時候這個程式就停止了.
可恨, 然後當然是搜尋如何讓程式在後臺執行,要一直執行的那種,不受到程式就不關的那種
結果發現.用nohup ,或者& 的方法就可以
java -jar spring-boot-1.0-SNAPSHOT.jar > runLog.file 2>&1 &
更新,發現用這個命令關閉終端還是會關掉程序所以
nohup java -jar springboot-mybatis-1.0.1-SNAPSHOT.jar > runLog.file
2>&1 &
用nohup命令就好
spring-boot-1.0-SNAPSHOT.jar是你的 包名
然後這個runLog.file 是你執行時記錄的日誌
tail -f 100 runLog.file
檢視實時滾動的資料
vi runLog.file
vim 編輯器就不多說了
:$ 跳到最後
:wq 儲存退出
:q! 強制退出
ctrl+F 往前一頁
ctrl+B 往後一頁
INS//insert 啟用編輯
不是編輯模式下雙擊D鍵 刪除該行
我想關掉後臺執行的 Spring Boot 的服務 我該怎麼做呢:
ps aux | grep spring | xargs kill -9
ps aux 是找出現在所有執行的程序
grep spring 是找出這些程序中名字是帶有spring 字樣的
xargs 將這個前面找到的名字傳給後面這個kill -9這個命令
kill -9 就是強制刪除程序了.
好了今天就說這麼多吧, 剛得到訊息..這個管理器不是那麼簡單的,會有很多中介軟體來請求我,我聽到這個想法的第一個反應是DDOS攻擊?? 我總算開始要用多執行緒來解決問題了.
希望別出錯..