@SpringBootApplication
@RestController
public class DemoHomeApplication {
public static void main(String[] args) {
SpringApplication.run(DemoHomeApplication.class, args);
}
@PostMapping("/test")
public void test(@Valid Person person){
System.out.println(person.toString());
}
}
@Data
public class Person implements Serializable {
@Valid
private Image image;
@NotNull
private String name;
private String gender;
}
@Data
public class Image {
@NotNull
private String url;
private String base64;
private Address address;
}
@Data
public class Address {
@NotNull
private String country;
private String city;
}
要引入这个包
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.1.Final</version>
</dependency>
参数 | 结果 |
---|---|
{"gender": "male"} | Bad Request |
{"name": "zhangys"} | ok |
{"name": "zhangys","image":{"base64": "test"}} | Bad Request |
{"name": "zhangys","image":{"url": "test"}} | ok |
{ "name": "zhangys","image":{"url": "test","address": {"city": "test"}}} | ok |
结论:
嵌套必须加上@Valid注解,不加的话里面的@NotNull等注解无法生效