工欲善其事,必先利其器。
一: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命令