package cn.utils;
import cn.exception.MsgException;
import org.hibernate.validator.HibernateValidator;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
import java.util.Set;
/**
* @author yanglinfengkk
* @version 1.0
* @description 业务对象数据校验工具类
*/
public class ValidatedUtils {
private final static Validator validator = Validation.byProvider(HibernateValidator.class).configure().addProperty("hibernate.validator.fail_fast", "true").buildValidatorFactory().getValidator();
public static <T> ValidResult validateBean(T t, Class<?>... groups) {
ValidResult result = new ValidResult();
Set<ConstraintViolation<T>> violationSet = validator.validate(t, groups);
boolean hasError = violationSet != null && violationSet.size() > 0;
result.setHasErrors(hasError);
if (hasError) {
for (ConstraintViolation<T> violation : violationSet) {
result.addError(violation.getPropertyPath().toString(), violation.getMessage());
}
}
return result;
}
/**
* 校验bean的某一个属性
*
* @param t
* @param propertyName 属性名称
* @return ValidResult
*/
public static <T> ValidResult validateProperty(T t, String propertyName, Class<?>... groups) {
ValidResult result = new ValidResult();
Class[] cls = null;
if (groups.length == 0) {
cls = new Class[]{Default.class};
} else {
cls = groups;
}
Set<ConstraintViolation<T>> violationSet = validator.validateProperty(t, propertyName, cls);
boolean hasError = violationSet != null && violationSet.size() > 0;
result.setHasErrors(hasError);
if (hasError) {
for (ConstraintViolation<T> violation : violationSet) {
result.addError(propertyName, violation.getMessage());
}
}
return result;
}
/**
* 校验bean的某几个属性
*
* @param t
* @param args 属性名称
* @return ValidResult
*/
public static <T> ValidResult validateProperties(T t, @NotNull Class group, @NotNull String... args) {
ValidResult result = new ValidResult();
Class[] cls = new Class[]{group};
for (String propertyName : args) {
Set<ConstraintViolation<T>> violationSet = validator.validateProperty(t, propertyName, cls);
boolean hasError = violationSet != null && violationSet.size() > 0;
result.setHasErrors(hasError);
if (hasError) {
for (ConstraintViolation<T> violation : violationSet) {
String errorMsg = violation.getMessage();
if (!errorMsg.isEmpty()) {
result.addError(propertyName, violation.getMessage());
break;
}
}
}
}
return result;
}
public static <T> void checkValidateBean(T t, Class group) {
ValidResult validResult = validateBean(t, group);
if (validResult.hasErrors()) {
throw MsgException.paramsError(validResult.getErrors());
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot 实现注解式数据校验(附源码) (111个子文件)
$PROJECT_FILE$ 364B
.gitignore 0B
validated.iml 9KB
ValidatedUtils.java 3KB
IpAddressRegexp.java 3KB
SpringUtils.java 3KB
CategoryController.java 3KB
CategoryEntity.java 3KB
StringRegexp.java 2KB
ListStr.java 2KB
ListValue.java 2KB
BaseException.java 2KB
ValidResult.java 2KB
MsgException.java 1KB
MessageUtils.java 703B
ValidatedGroup.java 615B
NumberRegexp.java 579B
BusinessException.java 481B
PhoneRegexp.java 410B
RecursionApplication.java 394B
ValidateException.java 366B
CarRegexp.java 343B
CategoryServiceImplTest.java 288B
UpdateStatusGroup.java 177B
DeleteGroup.java 165B
UpdateGroup.java 165B
SelectGroup.java 165B
AddGroup.java 162B
qaplug_profiles.xml 41KB
workspace.xml 33KB
uiDesigner.xml 9KB
junitgenerator-prj-settings.xml 6KB
pom.xml 2KB
Project_Default.xml 1KB
jarRepositories.xml 864B
compiler.xml 816B
misc.xml 797B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_8_RELEASE.xml 793B
Maven__org_springframework_boot_spring_boot_starter_validation_2_1_8_RELEASE.xml 793B
Maven__org_springframework_boot_spring_boot_starter_logging_2_1_8_RELEASE.xml 772B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_8_RELEASE.xml 765B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_8_RELEASE.xml 758B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_9.xml 753B
Maven__org_springframework_boot_spring_boot_starter_json_2_1_8_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_test_2_1_8_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_aop_2_1_8_RELEASE.xml 744B
Maven__org_springframework_boot_spring_boot_starter_web_2_1_8_RELEASE.xml 744B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 724B
Maven__org_springframework_boot_spring_boot_starter_2_1_8_RELEASE.xml 716B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_9.xml 712B
Maven__org_hibernate_validator_hibernate_validator_6_0_17_Final.xml 705B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_9.xml 698B
Maven__org_springframework_boot_spring_boot_test_2_1_8_RELEASE.xml 695B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_24.xml 684B
Maven__org_springframework_spring_expression_5_1_9_RELEASE.xml 682B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml 668B
Maven__org_springframework_spring_context_5_1_9_RELEASE.xml 661B
Maven__com_fasterxml_jackson_core_jackson_databind_2_9_9_3.xml 661B
Maven__org_springframework_boot_spring_boot_2_1_8_RELEASE.xml 660B
Maven__org_junit_platform_junit_platform_commons_1_3_2.xml 657B
Maven__org_springframework_spring_webmvc_5_1_9_RELEASE.xml 654B
Maven__org_junit_platform_junit_platform_engine_1_3_2.xml 650B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_24.xml 649B
Maven__org_springframework_spring_beans_5_1_9_RELEASE.xml 647B
Maven__org_springframework_spring_test_5_1_9_RELEASE.xml 640B
Maven__org_springframework_spring_core_5_1_9_RELEASE.xml 640B
Maven__org_junit_jupiter_junit_jupiter_engine_5_3_2.xml 639B
Maven__org_junit_jupiter_junit_jupiter_params_5_3_2.xml 639B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_24.xml 635B
Maven__javax_annotation_javax_annotation_api_1_3_2.xml 635B
Maven__javax_validation_validation_api_2_0_1_Final.xml 635B
Maven__javax_activation_javax_activation_api_1_2_0.xml 635B
Maven__org_springframework_spring_web_5_1_9_RELEASE.xml 633B
Maven__org_springframework_spring_jcl_5_1_9_RELEASE.xml 633B
Maven__org_springframework_spring_aop_5_1_9_RELEASE.xml 633B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml 632B
Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml 632B
Maven__com_fasterxml_jackson_core_jackson_core_2_9_9.xml 619B
Maven__org_junit_jupiter_junit_jupiter_api_5_3_2.xml 618B
Maven__net_bytebuddy_byte_buddy_agent_1_9_16.xml 602B
Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml 597B
Maven__org_apiguardian_apiguardian_api_1_0_0.xml 596B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 592B
Maven__org_junit_jupiter_junit_jupiter_5_9_1.xml 590B
Maven__org_hamcrest_hamcrest_library_1_3.xml 577B
Maven__ch_qos_logback_logback_core_1_2_3.xml 571B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 570B
Maven__org_mockito_mockito_core_2_23_4.xml 566B
Maven__org_assertj_assertj_core_3_11_1.xml 566B
Maven__org_aspectj_aspectjweaver_1_9_4.xml 566B
Maven__net_minidev_accessors_smart_1_2.xml 566B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 561B
Maven__net_bytebuddy_byte_buddy_1_9_16.xml 560B
Maven__org_xmlunit_xmlunit_core_2_6_3.xml 559B
Maven__org_slf4j_jul_to_slf4j_1_7_28.xml 558B
Maven__org_opentest4j_opentest4j_1_1_1.xml 557B
Maven__org_hamcrest_hamcrest_core_1_3.xml 556B
Maven__org_projectlombok_lombok_1_18_8.xml 548B
Maven__com_fasterxml_classmate_1_4_0.xml 546B
Maven__javax_xml_bind_jaxb_api_2_3_1.xml 543B
共 111 条
- 1
- 2
资源评论
Fong灵
- 粉丝: 810
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功