隨著框架使用的不斷的更新,後面使用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;
注意事項
- 項目啟動前本機需要啟動redis,否則會出現ERRROR
- 測試地址為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/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
- 啟動停止優化
./app.sh start 默認會啟動當前目錄下最後放入的jar包,stop同理 - 啟動停止參數優化
./app.sh start springBootTemplate-0.0.1-SNAPSHOT.jar後面可以跟上項目名稱,啟動或停止指定的項目 - 重啟指令優化,方便重新發布服務
./app.sh restart如果當前目錄下有兩個jar包,會停止前一個放入的jar並備份,然後啟動最新放入的jar
如:當前目錄情況為
app1.jar 放入文件夾時間為12:00
app2.jar 放入文件夾時間為13:00
app.sh
執行重啟指令後,先停止app1.jar,然後備份app1.jar,然後啟動app2.jar
源碼已經上傳github,需要源碼的朋友,關注+轉發後,私信「資料」免費查看獲取方式
而對於SPringleBoot,能看到這裡的朋友應該對這個技術很感興趣吧,這裡也給大家準備了一些資料,同樣的,需要這份資料的,關注+轉發後,私信「資料」查看吧