文章目錄
spring參數註解
@Null 被註釋的元素必須爲null
@NotNull 被註釋的元素不能爲null
@AssertTrue 被註釋的元素必須爲true
@AssertFalse 被註釋的元素必須爲false
@Min(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@Max(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@DecimalMin(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@DecimalMax(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Size(max,min) 被註釋的元素的大小必須在指定的範圍內。
@Digits(integer,fraction) 被註釋的元素必須是一個數字,其值必須在可接受的範圍內
@Past 被註釋的元素必須是一個過去的日期
@Future 被註釋的元素必須是一個將來的日期
@Pattern(value) 被註釋的元素必須符合指定的正則表達式。
@Email 被註釋的元素必須是電子郵件地址
@Length 被註釋的字符串的大小必須在指定的範圍內
@NotEmpty 被註釋的字符串必須非空
@Range 被註釋的元素必須在合適的範圍內
@Valid Controller層要對實體類進行校驗時,需要添加此註解
參數註解實例可參考:
spring後端接收參數註解
@requestparam和@requestbody的區別
參考文章:
@RequestParam與@RequestBody對比
Pagehelper源碼理解
mySql執行計劃
mySql模糊搜索提高效率
有的博客上說是用mysql的LOCATE來進行模糊搜索效率會比LIKE高。有待測試。
具體真正提高模糊搜索效率的官方說明未找到。
@Transactional
簡單掌握 Spring 中@Transactional 的使用
註解@Transactional的propagation屬性介紹及代碼展示
@Transactional詳解(一)
@Transactional詳解(二)
int和Integer的區別
- Integer是int的包裝類,int則是java的一種基本數據類型
- Integer變量必須實例化後才能使用,而int變量不需要
- Integer實際是對象的引用,當new一個Integer時,實際上是生成一個指針指向此對象;而int則是直接存儲數據值
- Integer的默認值是null,int的默認值是0
參考文章:
int和Integer的比較
FreeMarker使用
我們項目中用到的freemarker
FreeMarker官方中文手冊
FreeMarker基礎使用
StringBUffer、StringBuilder
String、StringBuffer與StringBuilder的區別及應用場景
java IO流原理、概念、操作流程學習。
看書,不要看博客。
String.format()的用法
Iterator,for,forEach
Iterator,for,forEach的遍歷和效率
經過測試,Iterator不管在1萬還是100萬數量級下,遍歷效率都比其他兩種方式都來得低。
for遍歷在1萬以下元素裏最快,如果元素在10萬個以上,那麼forEach就是最快的。
以上測試是基於博客中給出的例子,在本地進行測試的結果,並非一定正確,因爲我們項目中可能數組、集合存儲的元素不同,可能會影響到這三種方式遍歷的效率。所以在項目中,有遍歷到數據量大的數組或集合,還是應該要實地做下測試。
@Data
@Data註解的類,編譯後會自動給我們加上下列方法:
- 所有屬性的get和set方法
- toString 方法
- hashCode方法
- equals方法
@Controlleradvice
@ControllerAdvice 註解,可以用於定義@ExceptionHandler、@InitBinder、@ModelAttribute,並應用到所有@RequestMapping中。
@ControllerAdvice 攔截異常並統一處理
Spring MVC之@ControllerAdvice詳解
Lombok
同步調用轉換成異步消息交互的場景和原則
- 比如在買機票系統中,機票支付完成後需要通知出票系統出票、代金券系統發券。如果使用同步調用,那麼出票系統、代金券系統宕機是會影響到機票支付系統。如果我們將同步調用替換成異步消息,機票支付系統發送機票支付成功的消息到消息中間件,出票系統、代金券系統從消息中間件訂閱消息。這樣一來,出票系統、代金券系統的宕機也就不會對機票支付系統造成任何影響了。
- 分清主次,主要的功能,對其他功能有影響的,要同步。對於主要功能沒有影響的,就可以異步處理。如上面的機票問題,還有就是電商的支付,也是同一道理。
- 耗時較長的程序。如之前E行銷生成保單。就是提交數據後,保存成功即返回,讓生成保單的PDF文件異步來生成,因爲這個保單生成耗時較長。