参数验证

参数验证

C1.Springboot参数验证

步骤

一.引入依赖

 <!--参数验证-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

二.验证的参数加注解并在该参数后面加BindingResult(多个参数亦然)

(@RequestHeader("security") String sessionId,
 @Validated @RequestBody DisposeQueryAlarmPVO param,
 BindingResult bindingResult)

三.对应类加验证注解
注解释义:
@NotNull:
适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)


@NotBlank
适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0


@NotEmpty
适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0

示例:

    private List<String> alarmLevels;

    private String alarmSrcs;

    @NotEmpty(message = "请选择至少一辆车")
    @ApiModelProperty("车辆id集合")
    private List<String> carIds;

    @ApiModelProperty("持续时长")
    private String duration;

    @NotBlank(message = "请输入统计结束时间")
    @ApiModelProperty("统计结束时间")
    private String endTime;

    @ApiModelProperty("最小速度")
    private String speedMin;

    @NotBlank(message = "请输入统计开始时间")
    @ApiModelProperty("统计开始时间")
    private String startTime;

    private String states;

    @ApiModelProperty("报警类型")
    private List<String> types;

四.验证bindingResult

if(bindingResult.hasErrors()){
   String errorMsg = bindingResult.getFieldError().getDefaultMessage();
   return new Result<>(ResultEnum.USEING.addParams(ResultEnum.ERR_VALIDATE_PARAM,errorMsg));
  }

C2.bean的生命周期和作用域

P1. 作用域

@Scope("singleton") 唯一bean实例,Spring中的bean默认都是单例的。
@Scope("prototype")每次请求都会创建一个新的bean实例(多例)。
@Scope("request")每一次http请求都会产生一个新的bean,只在http request内有效。
@Scope("session")每一次http请求都会产生一个新的bean,只在http session内有效。

posted @ 2022-10-24 11:23  逆态度22  阅读(93)  评论(0)    收藏  举报