来了,来了,Mars-Java 的属性校验注解,支持作用域设置了

来源: 投稿
2020-07-22 20:37:00

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/

个人微博:@个人开发者-俞晔

展开阅读全文
点击加入讨论🔥(4) 发布并加入讨论🔥
4 评论
2 收藏
分享
返回顶部
顶部