今天大佬指出了我代碼中不規(guī)范的地方,記錄下來引以為戒。
1、log日志在記錄對(duì)象時(shí),最好用gson轉(zhuǎn)換成字符串,避免未重寫toString()導(dǎo)致的顯示異常。
2、打印日志時(shí)直接打印e,不要輸出e.getMessage或者e.printStackTrace
????????e.printStackTrace是將異常信息輸出到控制臺(tái)并且時(shí)sychronized的
????????e.getMessage輸出的只是出了什么異常,但是異常在哪里并不清楚
????????e輸出的內(nèi)容跟e.printStackTrace一樣,只是將內(nèi)容輸出到了文件中(即方法的堆棧信息)
3、log.error后要考慮是否應(yīng)該拋出異常,因?yàn)榇藭r(shí)異常已經(jīng)被消費(fèi)了,數(shù)據(jù)庫增刪改一定要拋出異常或者判斷,查詢視情況
4、git pull伴有一次merge,push沒有
5、idea建議的設(shè)置
????????自動(dòng)刪除未使用的import的jar包,file---setting---editor---general---auto import? 勾選OPtimize import
????????idea默認(rèn)導(dǎo)入的jar超過3還是5個(gè)會(huì)自動(dòng)變成.*,file--setting--editor--code style--java class count和names count數(shù)量設(shè)置比較大即可,如999
6、git blame? fileName可以查看當(dāng)前的git文件的每一行修改人員的信息? git blame -L n,m fileName? 查看n行開始共m行的信息
7、遍歷list時(shí)最好用原始的for循環(huán)(效率高于java8的streaming和foreach)
????????原始for循環(huán),每次JVM僅僅增加一個(gè)數(shù)字,然后從內(nèi)存取值
????????foreach,JVM會(huì)把foreach轉(zhuǎn)換成一個(gè)iterator然后每次調(diào)用一次hashNext方法
8、springMVC的過程:
????????用戶發(fā)起請(qǐng)求
????????前端控制器接受請(qǐng)求
????????前端控制器拿著請(qǐng)求去找處理器映射器
????????處理器映射器返回對(duì)應(yīng)的處理器適配器
????????前端控制器去找返回的處理器適配器
????????處理器適配器的handle處理請(qǐng)求并返回一個(gè)ModelAndView
????????處理器適配器將ModelAndView返回給前端控制器
????????前端控制器拿著ModelAndView找視圖解析器
????????視圖解析器返回對(duì)應(yīng)的view
????????前端控制器將model填充到view中,并將view填充到請(qǐng)求的request中返回頁面