專案背景
在做專案的時候,把springboot的專案打包成安裝包了,在客戶上面安裝執行,一切都是那麼的完美,可是發生了意外程式設計客棧,對方突然說匯出匯入的檔案都不行了。我急急忙忙的檢視日誌,發現報了乙個錯誤
at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfil程式設計客棧3)
經過分析發現,這是tomcat在啟動的時候會生成乙個臨時的上傳檔案儲存的位置,但是這個位子預設是放在系統的臨時資料夾中。當這個tomcat建立的資料夾被系統刪除後,這時在上傳檔案就出現問題了。可能對方伺服器裝上了360管家,會自動刪掉好似
開工針對這乙個異常有以下解決方法
1.萬能的重啟,絕大多數的問題解決方法,「你重啟一下試試」。但是這個方法只能解決得了一時,解決不了一世啊。
2.在配置檔案中加上
server.tomcat.basedir=自定義目錄
3.啟動jar包的時候加上引數 -dj**a.io.tmpdir=自定義目錄
j**a -jar xx.jar -dj**a.io.tmpdir=自定義目錄
4.新增配置bean
import org.springframework.boot.web.servlet.multipartconfigfactory;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import j**ax.servlet.multipartconfigelement;
@configuration
public class tomcatbeanconfig
}-------------------------------------分隔符 ------------------------------------------
接著說優化,至於優化,我在解決上面的問題發現,tomcat中有乙個配置
# 後台執行緒方法的delay大小每隔900s清除過期的session會話
server.tomcat.background-processor-delay=900
預設值是10, 每隔10s發生一次young gc,並且cpu使用率長期大於10%。
con程式設計客棧tainerbackgroundprocessor這個執行緒是幹什麼的?
tomcat的engine會啟動乙個執行緒(就是containerbackgroundprocessor),該執行緒每10s會傳送乙個傳送乙個事件,監聽到該事件的部署配置類會自動去掃瞄webapp資料夾下的war包,將其載入成乙個context,即啟動乙個web服務。同時,該執行緒還會呼叫子容器engine、host、context、wrapper各容器元件及與它們相關的其它元件的backgroundprocess方法。
個人理解是,每隔10s對session的過期清理過於頻繁從而導致cpu佔用率過高,
我改成了900,就是每900秒檢測一次,這樣就降低cpu佔用率啦
backgroundprocess對spring mvc的影響
主要影響session的過期清理,如果設定為900,
就只會每隔900s清除過期的session會話。
server.tomcat.background-processor-delay = 900s
#呼叫backgroundprocess方法之間的延遲。如果未指定持續時間字尾,則將使用秒。
springboot註解詳解
標註註解 restcontroller 標示當前類是乙個控制類,是springboot提供的基於restfull風格開發,該註解是乙個組合註解,由 controller和 responsebody構成,如果當前類標示restcontroller,則在返回資料是以json格式返回。postconstr...
Springboot 啟動詳解
最近一直在看springboot和springcloud 看了將近20多天,對這兩個系統的認知總算是入了門。後續應該會有乙個系列的文章,本文就先從springboot的啟動入手.上面的 是springboot的入口,現在從run方法進去 點選進來後到了這裡就會分成兩步 2.呼叫生成的物件的run方法...
詳解Spring Boot中初始化資源的幾種方式
假設有這麼乙個需求,要求在專案啟動過程中,完成執行緒池的初始化,加密證書載入等功能,你會怎麼做?如果沒想好答案,請接著往下看。今天介紹幾種在spring boot中進行資源初始化的方式,幫助大家解決和回答這個問題。commandlinerunner 示例 如下 component public cl...