1. 程式人生 > >spring boot 打包成jar 在伺服器上執行

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攻擊?? 我總算開始要用多執行緒來解決問題了.
希望別出錯..