# (四)Java Bean Validation 最佳实践
标签(空格分隔): JSR-303
- Bean Validation(JSR) 是规范,Hibernate validator是实现
- Bean Validation 1.0(JSR-303)当前实现是Hibernate validator 4,且spring3才支持,主要是对javabean的属性进行校验
- Bean Validation 1.1(JSR-349)当前实现是Hibernate validator 5,且spring4才支持,可以对方法参数进行校验
可以参考https://my.oschina.net/qjx1208/blog/200946
mvc.xml配置文件中加入
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
JSR-349使用到了@Validated开启校验,可以加到方法上,参数上或者类上
import javax.validation.Valid;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.vo.User;
@RestController
@Validated
public class HelloController {
@PostMapping("/addUser")
public String addUser(@NotEmpty @Length(min = 5) String username) {
return username;
}
}
返回的信息有效需要用到国际化,同时支持el表达式,需要的时候可以了解