目标:从yml中读取信息,对信息进行校验,然后注入到类中。
添加依赖
<!--校验框架-->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
进行校验
/*
servers:
ipAddress: 192.168.0.1
port: 10000
timeOut: -1
*/
@Data
@Validated
@Component
@ConfigurationProperties(prefix = "servers")
public class MyServletConfig {
private String ipAddress;
@Max(value = 8080, message = "不能超过8080")
@Min(value = 0, message = "不能低于0")
private int port;
private Long timeout;
}
扩展
springboot 2.3之前的集成在spring-boot-starter-web
里了,所以不需要额外引入包。
springboot 2.3之后需要引入 spring-boot-starter-validation。
单个参数校验和Bean字段校验还是有点区别的:单个参数校验需要在参数上增加校验注解,并在类上标注@Validated
。