参数验证
参数验证
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内有效。

浙公网安备 33010602011771号