springboot validator 验证器
**********************
相关类与接口
Validator:spring 提供接口,可对类进行验证
public interface Validator {boolean supports(Class<?> clazz); //验证的类void validate(Object target, Errors errors); //自定义验证规则
}
DataBinder
public class DataBinder implements PropertyEditorRegistry, TypeConverter {public static final String DEFAULT_OBJECT_NAME = "target";public static final int DEFAULT_AUTO_GROW_COLLECTION_LIMIT = 256;protected static final Log logger = LogFactory.getLog(DataBinder.class);private final Object target;private final String objectName;private AbstractPropertyBindingResult bindingResult;private SimpleTypeConverter typeConverter;private boolean ignoreUnknownFields = true;private boolean ignoreInvalidFields = false;private boolean autoGrowNestedPaths = true;private String[] allowedFields;private String[] disallowedFields;private String[] requiredFields;private ConversionService conversionService;private MessageCodesResolver messageCodesResolver;private BindingErrorProcessor bindingErrorProcessor = new DefaultBindingErrorProcessor();private int autoGrowCollectionLimit = DEFAULT_AUTO_GROW_COLLECTION_LIMIT;private final List<Validator> validators = new ArrayList<>();**************
构造函数public DataBinder(@Nullable Object target) {public DataBinder(@Nullable Object target, String objectName) {**************
普通方法public boolean isAutoGrowNestedPaths() {public Object getTarget() {public String getObjectName() {public int getAutoGrowCollectionLimit() {public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths) {public void setAutoGrowCollectionLimit(int autoGrowCollectionLimit) {public void initBeanPropertyAccess() {public void initDirectFieldAccess() {***********
验证器public void setValidator(@Nullable Validator validator) {public void addValidators(Validator... validators) {public void replaceValidators(Validator... validators) {public Validator getValidator() {public List<Validator> getValidators() {private void assertValidators(Validator... validators) {***********
格式化器public void addCustomFormatter(Formatter<?> formatter) {public void addCustomFormatter(Formatter<?> formatter, String... fields) {public void addCustomFormatter(Formatter<?> formatter, Class<?>... fieldTypes) {***********
自定义编辑器public void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor) {public void registerCustomEditor(@Nullable Class<?> requiredType, @Nullable String field, PropertyEditor propertyEditor) {public PropertyEditor findCustomEditor(@Nullable Class<?> requiredType, @Nullable String propertyPath) {***********
convertIfNecessary操作public <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType) throws TypeMismatchException {public <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType,@Nullable MethodParameter methodParam) throws TypeMismatchException {public <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable Field field)throws TypeMismatchException {public <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType,@Nullable TypeDescriptor typeDescriptor) throws TypeMismatchException {public BindingResult getBindingResult() {public void bind(PropertyValues pvs) {protected void doBind(MutablePropertyValues mpvs) {public boolean isIgnoreInvalidFields() {public boolean isIgnoreUnknownFields() {public void setIgnoreUnknownFields(boolean ignoreUnknownFields) {public void setIgnoreInvalidFields(boolean ignoreInvalidFields) {public void setAllowedFields(@Nullable String... allowedFields) {public void setDisallowedFields(@Nullable String... disallowedFields) {public void setRequiredFields(@Nullable String... requiredFields) {public String[] getAllowedFields() {public String[] getDisallowedFields() {public String[] getRequiredFields() {public void setMessageCodesResolver(@Nullable MessageCodesResolver messageCodesResolver) {public void setBindingErrorProcessor(BindingErrorProcessor bindingErrorProcessor) {public void setConversionService(@Nullable ConversionService conversionService) {public BindingErrorProcessor getBindingErrorProcessor() {public ConversionService getConversionService() {public void validate() {public void validate(Object... validationHints) {public Map<?, ?> close() throws BindException {protected void checkAllowedFields(MutablePropertyValues mpvs) {protected boolean isAllowed(String field) {protected void checkRequiredFields(MutablePropertyValues mpvs) {protected void applyPropertyValues(MutablePropertyValues mpvs) {protected AbstractPropertyBindingResult createBeanPropertyBindingResult() {protected AbstractPropertyBindingResult createDirectFieldBindingResult() {protected AbstractPropertyBindingResult getInternalBindingResult() {protected ConfigurablePropertyAccessor getPropertyAccessor() {protected SimpleTypeConverter getSimpleTypeConverter() {protected PropertyEditorRegistry getPropertyEditorRegistry() {protected TypeConverter getTypeConverter() {
**********************
示例