拦截所有年龄<18岁的用户
1、实体层定义限制
package cn.edu.shu.ces_chenjie.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Min;
@Entity
public class Person {
@Id
@GeneratedValue
private Integer id;
@Min(value = 18,message = "未满18岁禁止访问")
private Integer age;
private String name;
public Person() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", age=" + age +
", name='" + name + '\'' +
'}';
}
}
2、Controller层使用Valid进行参数验证,
package cn.edu.shu.ces_chenjie.controller;
import cn.edu.shu.ces_chenjie.pojo.Person;
import cn.edu.shu.ces_chenjie.repository.PersonRepository;
import cn.edu.shu.ces_chenjie.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@RestController
public class PersonController {
@Autowired
private PersonRepository repository;
@Autowired
private PersonService personService;
@GetMapping("/persons")
public List<Person> personList(){
return repository.findAll();
}
//使用@Valid进行验证,验证结果放在BindingResult里面
@PostMapping("/persons")
public String personAdd(@Valid Person person,BindingResult bindingResult){
if(bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return bindingResult.getFieldError().getDefaultMessage();
}
person.setAge(person.getAge());
person.setName(person.getName());
return repository.save(person).toString();
}
@GetMapping("persons/{name}")
public List<Person> personListByName(@PathVariable("name")String name){
return repository.findByName(name);
}
@PostMapping("persons/two")
public void personTwo(){
personService.insertTwo();
}
}
3、测试