歡迎您光臨本站 註冊首頁

來了,來了,Mars-Java 的屬性校驗註解,支援作用域設定了

←手機掃碼閱讀     admin @ 2020-07-23 , reply:0

Mars-Java 3.0.26 更新如下:

  1. 引數校驗註解@MarsDataCheck,支援作用域設定
  2. JSON傳參做了優化
  3. 對程式碼進行了大量優化,使其更穩定可靠

作用域設定

在實際開發中,很多VO物件會被作為多個介面的接參物件,這種情況下如果在屬性上加@MarsDataCheck註解,會導致所有用到這個物件的介面,都需要遵循這個校驗規則。

但是實際中會出現這種情況:A介面需要這個欄位非空,但是B介面又不需要非空。

這個時候,就需要作用域了。舉個例子:

有一個VO物件


 public class ExpVO {
 
     private String name;
 
     private String address;
 
 }

有三個介面用它作為接參物件【注意看註釋】


 @MarsApi(refBean = "expApiService")
 public interface ExpApi {
 
     // 這個介面name不可以為空,address可以為空
     List<ExpVO> expGetRequest(ExpVO expVO);
 
     // 這個介面name和address都不可以為空
     @RequestMethod(ReqMethod.POST)
     List<ExpVO> expPostRequest(ExpVO expVO);
 
     // 這個介面address不可以為空,name可以為空
     @RequestMethod(ReqMethod.POST)
     List<ExpVO> saveRequest(ExpVO expVO);
 
 }

我們可以用如下方式來設定ExpVo的屬性校驗【注意看註釋】

在@MarsDataCheck註解裡設定api屬性


 public class ExpVO {
 
     /* 
      * expGetRequest 和 expPostRequest兩個介面都不允許name為空
      * 只需要在apis屬性裡配置這兩個介面即可,但是由於他們都是exp開頭的
      * 所以用萬用字元即可
      */
     @MarsDataCheck(notNull = true, msg = "名稱不可以為空", apis={"exp*"})
     private String name;
 
     /* 
      * saveRequest 和 expPostRequest兩個介面都不允許address為空
      * 只需要在apis屬性裡配置這兩個介面即可
      */
     @MarsDataCheck(notNull = true, msg = "地址不可以為空", apis={"expPostRequest","saveRequest"})
     private String address;
 
 }

注:

  • 如上面示例所示,api屬性支援配置多個介面名,同時也支援萬用字元
  • apis屬性如果不配置,則表示任意使用該VO的介面,都遵循這個校驗規則

 

專案官網:http://www.mars-framework.com/

個人微博:@個人開發者-俞曄


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/117376/mars-java-3-0-26-released
來了,來了,Mars-Java 的屬性校驗註解,支援作用域設定了已經有206次圍觀

http://coctec.com/news/all/show-post-244638.html