idea構建springBoot項目並部署到生產環境

工欲善其事,必先利其器。

一:idea創建springBoot項目 

   不難發現,還是有很多小朋友在使用eclipse開發java項目。當你接觸IDEA後,一切都變得美好了。

     使用IDEA創建一個springboot項目是一件極其簡單的事情。界面化的依賴選擇令人心曠神怡,有木有。

     下面就和我一起輕釦IDEA的大門,新建一個springboot項目。

1.打開IDEA,點擊 +Create New Project. 開始創建一個新項目。

  

 

2.在左側菜單找到並點擊 Spring Initializr,點擊next。注意,這裏idea默認使用https://start.spring.io提供的在線模板,所以需要保證網絡暢通。

當然也可以選擇下面的Custom從指定的鏈接加載模板。

       這時,就有小朋友要問了。要是沒網不就GG了,我還是用eclipse吧。放心,IDEA不可能這麼菜。如何在本地搭建spring Initializr服務器,

請自行百度。後面會寫一篇教程,先在這裏立個flag吧。

 

3.按實際情況依次填寫項目信息。其中Type屬性可以下拉選擇project或者pom,Packaging屬性可下拉選擇jar或者war(Maven的東西不需要再提了吧)。

填寫完畢後點擊 Next。

 

4.最激動人心的界面來了!!!你可以從左面選擇大類,然後在窗口中間勾選需要的依賴。右邊可以看到已選擇的依賴項。

上邊下拉框可以選擇Spring Boot的版本,這裏使用最新版2.2.0 M4。完成後點擊 Next。

這裏我選擇了“Web”類別下的“Spring Web Starter”、“Template”類別下的“Thymeleaf”以及“SQL”類別下的“Spring Data JPA”和“Mysql Driver”。

      

 

 5. 終於,最後一步了。設置項目名稱Project name 和 工程保存路徑 Project location。完成後,點擊 Finish。

 

 

 6.等待IDEA構建好項目後,項目結構如下圖所示。根據每個人在第4步選擇的依賴不同,目錄結構大同小異。

 

 7.再看看pom.xml,我們需要的依賴都靜靜的躺在裏面。是不是so easy,媽媽再也不用擔心我找依賴了。

 

8.測試請求。

@RestController public class DemoController { 
        @GetMapping("/test") 
        public String test(){
             return "Success" ; 
        } 
}

 

配置文件

application.yml

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  profiles:
    active:
    - dev

 application-dev.yml

server:
  port: 8080
  
spring:
  application:
    name: me

 

9.寫個簡單頁面試試新建的工程好不好使。

spring boot,啓動。

 

      9.訪問看看效果如何,http://localhost:8080/test

二.springBoot項目的部署

在本地開發完的Java項目如果只是在本地運行是非常方便的,在IDE裏執行運行在帶有Main函數的Java文件裏運行run就可以了。在服務器上運行Java項目就稍微麻煩一些,但是也不復雜。這些都是在剛學習Java時候都必須會的東西,用了IDE後反而會讓你忘記最開始接觸Java時候的一些知識點。

常用方式

本地寫的demo程序打包成demo.jar,上傳到Linux服務器後,執行jar包有如下幾種方式。

 mvn install  或者  mvn clean package

打包項目

我們需要將項目打包並且上傳到服務器

 

編寫腳步操作 java 服務

(1) 啓動腳本 start.sh

nohup java -jar me-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev &

(2) 停止腳本 stop.sh

PID=$(ps -ef | grep me-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi

(3) 新建空白Log文件,保存日誌 nohup.out

touch nohup.out

(4) 查看日誌 log.sh

tail -f nohup.out

注意,如果是在windows用notepad++編寫的,要把文檔格式轉換成UNIX,菜單:編輯-->文檔格式轉換-->轉換成UNIX格式

(5) 完整目錄如下圖

(6)操作java服務:腳本創建完成後就可以操作 java 服務了

# 啓動java
./start.sh
# 停止java服務
./stop.sh
# 查看日誌
./log.sh

 啓動服務  若無權限  賦予 app文件夾權限   App文件夾是自己新建的

Linux 給文件夾或者文件增加權限

chmod -R 777 文件夾
參數-R是遞歸的意思
777表示開放所有權限

chmod 777 test.sh

chmod +x 某文件

如果給所有人添加可執行權限:chmod a+x 文件名;
如果給文件所有者添加可執行權限:chmod u+x 文件名;
如果給所在組添加可執行權限:chmod g+x 文件名;
如果給所在組以外的人添加可執行權限:chmod o+x 文件名;

4、訪問接口 是否啓動成功

 

 

 

三:4種部署springBoot jar包方式的區別

第1種

java -jar demo.jar

說明:用這種方法啓動後,不能繼續執行其它命令了,如果想要繼續執行其它命令,就都打斷,打斷一般用ctrl+c。

第2種

java -jar demo.jar &

第2種在第1種方式的基礎上在命令的結尾增加了&,&表達的意思是在後臺運行。
這種方式可以避免打斷後程序停止的問題,但是避免不了關閉當前窗口後程序停止的問題。

第3種

nohup java -jar demo.jar &

第3種在第2種方式的基礎上,在命令的最前面增加了nohup。nohub是什麼?

nohup是不掛斷運行命令,當賬戶退出或終端關閉時,程序仍然運行。

加了nohup後,即使關掉命令窗口,後臺程序demo.jar也會一直執行。

第4種

nohup java -jar demo.jar >1.txt &

第4種在第3種的基礎上,在後面增加了>1.txt,意思是將nohup java -jar demo.jar的輸出重定向到1.txt文件中,即輸出內容不打印到當前窗口上,而是輸出到1.txt文件中。

第3種沒有加>1.txt,它的輸出重定向到nohup.out文件中,nohup.out也就是nohup命令的默認輸出文件。

總結

通過幾種方式的對比,能得出結論—執行jar文件用第4種方式最好,同時可以把它寫成一個腳本,不用每次都寫一遍。新建start.sh,根據我上傳的demo.jar,輸出到1.txt中,具體腳本如下:

nohup java -jar demo.jar >1.txt &

一句話:Linux下執行jar文件,一定要用nohup命令

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章