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

程序猿愛code 發佈 2020-08-19T08:35:27+00:00

不熟悉SpringBoot項目的人,在學習了SpringBoot的基礎部分之後,能根據這個模版快速上手。

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

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

模版目的

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

目錄說明

src/main/java/

存放java代碼,其中SpringBootTemplateApplication為SpringBoot啟動類

src/main/resources/

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

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

src/main/resources/static

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

src/main/resources/templates

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

src/main/resources/mapper

存放mybatis的sql語句xml文件


數據結構

表結構定義寫法如下

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操作工具類,暴露如下操作方法

CacheConfig簡單緩存

1、啟動類上需要加@EnableCaching註解
2、在需要執行緩存的類上面寫上緩存前綴名稱
@CacheConfig(cacheNames="user")
3、在查詢方法上使用@Cacheable(key = "'list'")配置鍵的名稱
4、在修改方法上使用@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使用步驟

1、使用gradle的bootRepackage進行打包
2、Dockerfile目錄下使用命令:docker build -t springboot:v1.0 .
3、啟動本地redis,並修改application-dev.yml中redis的IP位址為宿主機的IP位址如:192.168.1.111,mysql的IP位址同理
4、使用命令:docker run --name springbootTemplate -d -p 8080:8080 springboot:v1.0
5、直接訪問測試地址即可

注意事項

  • 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,能看到這裡的朋友應該對這個技術很感興趣吧,這裡也給大家準備了一些資料,同樣的,需要這份資料的,關注+轉發後,私信「資料」查看吧

目錄

詳細介紹

關鍵字: