阿里P8推薦的SpingBoot學習手冊+Git開源項目實踐分享,還不收藏

隨着框架使用的不斷的更新,後面使用SpringBoot會多,這邊準備構建一個SpringBoot項目使用的模版。 所謂模版,和以前同樣,就是一個最簡單的項目,包含全部最簡單的空實現。css

下面會有詳細的步驟給你們介紹,並在最後有驚喜相待哦!html

模版目的

  • 一、不熟悉SpringBoot項目的人,在學習了SpringBoot的基礎部分以後,能根據這個模版快速上手
  • 二、開發團隊的項目結構和使用裝備的統一,包括目錄結構,使用的一些組件上面的統一
  • 三、不想重複造輪子,每次新建一個項目很麻煩

目錄說明

src/main/java/

存放java代碼,其中SpringBootTemplateApplication爲SpringBoot啓動類java

src/main/resources/

application.yml 全局配置文件
application-data.yml 數據源相關配置文件
application-mvc.yml 頁面mvc相關配置文件
application-config.yml 須要引入的一些全局配置mysql

application-dev.yml 開發環境配置
application-prod.yml 生產環境配置linux

src/main/resources/static

存放各類靜態資源文件,如css,js,image等git

src/main/resources/templates

存放使用的頁面文件,各類html等github

src/main/resources/mapper

存放mybatis的sql語句xml文件redis

數據結構

表結構定義寫法以下spring

SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user_tab -- ---------------------------- DROP TABLE IF EXISTS `user_tab`; CREATE TABLE `user_tab` ( `id` int(11) NOT NULL AUTO_INCREMENT, `val` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; SET FOREIGN_KEY_CHECKS = 1;

注意事項

  1. 項目啓動前本機須要啓動redis,不然會出現ERRROR
  2. 測試地址爲http://127.0.0.1:8080/test,測試方法所有在UserController中

RedisUtil

新Redis操做工具類,暴露以下操做方法sql

 

CacheConfig簡單緩存

一、啓動類上須要加@EnableCaching註解
二、在須要執行緩存的類上面寫上緩存前綴名稱
@CacheConfig(cacheNames="user")
三、在查詢方法上使用@Cacheable(key = "'list'")配置鍵的名稱
四、在修改方法上使用@CachePut(key = "'list'")配置鍵的名稱
http://127.0.0.1:8080/cache/user/list
http://127.0.0.1:8080/cache/user/add
http://127.0.0.1:8080/cache/user/delete

FileHandleUtil

文件上傳工具類,上傳到與jar包同級的static目錄下,開發環境和服務器環境都可


方法:upload

入參:
inputStream 文件流
path 文件路徑,如:image/
filename 文件名,如:test.jpg

出參:
最後文件存放路徑爲:static/upload/image/test.jpg
文件訪問路徑爲:http://127.0.0.1:8080/upload/image/test.jpg
該方法返回值爲:/upload/image/test.jpg


方法:delete

入參:
path: 文件路徑,是upload方法返回的路徑如:/upload/image/test.jpg


關聯配置:

spring: # 靜態資源路徑 resources: static-locations: classpath:static/,file:static/ 

Dockerfile使用步驟

一、使用gradle的bootRepackage進行打包
二、Dockerfile目錄下使用命令:docker build -t springboot:v1.0 .
三、啓動本地redis,並修改application-dev.yml中redis的IP地址爲宿主機的IP地址如:192.168.1.111,mysql的IP地址同理
四、使用命令:docker run --name springbootTemplate -d -p 8080:8080 springboot:v1.0
五、直接訪問測試地址便可

注意事項

  • Dockerfile中的APP_NAME對應jar.baseName-jar.version
  • Dockerfile中的APP_PORT&EXPOSE根據項目狀況填寫

快速啓動和中止應用的腳本

app.sh腳本爲快速啓動應用和關閉應用的腳本,使用方法以下:

首先,將你須要發佈的jar包,和含有上述內容的腳本app.sh,上傳至linux服務器,注意二者必須處於同一目錄,並給予app.sh相應執行權限,chmod 777 app.sh

而後就能夠執行腳本,命令以下

 

腳本中能夠修改的地方:

nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &


這是最終jar的啓動命令,在這裏你須要對gc、Xms、Xmx等針對你機器的實際狀況修改,還能夠添加你所須要的啓動參數等。

for i in {5..1}
這裏是設置restart的時候等待的時間,由於有的項目在5秒以內可能沒有辦法正常中止,因此能夠調整爲10秒,保證應用確實正常中止後再啓動

  • 腳本至更新1.0.1
  1. 啓動中止優化
    ./app.sh start 默認會啓動當前目錄下最後放入的jar包,stop同理
  2. 啓動中止參數優化
    ./app.sh start springBootTemplate-0.0.1-SNAPSHOT.jar後面能夠跟上項目名稱,啓動或中止指定的項目
  3. 重啓指令優化,方便從新發布服務
    ./app.sh restart若是當前目錄下有兩個jar包,會中止前一個放入的jar並備份,而後啓動最新放入的jar
    如:當前目錄狀況爲
    app1.jar 放入文件夾時間爲12:00
    app2.jar 放入文件夾時間爲13:00
    app.sh
    執行重啓指令後,先中止app1.jar,而後備份app1.jar,而後啓動app2.jar

源碼已經上傳github,而對於SPringleBoot,能看到這裏的朋友應該對這個技術很感興趣吧,這裏也給你們準備了一些資料

 

相應的文章已經整理造成文檔,git掃碼獲取資料看這裏

https://gitee.com/biwangsheng/personal.git

目錄

 

詳細介紹

 

 

 

相關文章
相關標籤/搜索