diff --git a/mall-common/pom.xml b/mall-common/pom.xml
index 90947f1..b767571 100644
--- a/mall-common/pom.xml
+++ b/mall-common/pom.xml
@@ -23,6 +23,10 @@
org.projectlombok
lombok
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
diff --git a/mall-common/src/main/java/com/mall/common/domain/dto/package-info.java b/mall-common/src/main/java/com/mall/common/domain/dto/package-info.java
new file mode 100644
index 0000000..22b8a1d
--- /dev/null
+++ b/mall-common/src/main/java/com/mall/common/domain/dto/package-info.java
@@ -0,0 +1 @@
+package com.mall.common.domain.dto;
\ No newline at end of file
diff --git a/mall-common/src/main/java/com/mall/common/domain/dto/valid/ValidationGroups.java b/mall-common/src/main/java/com/mall/common/domain/dto/valid/ValidationGroups.java
new file mode 100644
index 0000000..bb05fc6
--- /dev/null
+++ b/mall-common/src/main/java/com/mall/common/domain/dto/valid/ValidationGroups.java
@@ -0,0 +1,15 @@
+package com.mall.common.domain.dto.valid;
+
+public interface ValidationGroups {
+ interface QUERY {
+ }
+
+ interface Add {
+ }
+
+ interface Update {
+ }
+
+ interface DELETE {
+ }
+}
\ No newline at end of file
diff --git a/mall-common/src/main/java/com/mall/common/exception/GlobalExceptionHandler.java b/mall-common/src/main/java/com/mall/common/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..38088e6
--- /dev/null
+++ b/mall-common/src/main/java/com/mall/common/exception/GlobalExceptionHandler.java
@@ -0,0 +1,95 @@
+package com.mall.common.exception;
+
+import com.mall.common.domain.vo.result.Result;
+import com.mall.common.domain.vo.result.ResultCodeEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.support.DefaultMessageSourceResolvable;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import java.sql.SQLIntegrityConstraintViolationException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@RestControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(MallException.class)
+ @ResponseBody
+ public Result