Commit e1743b8c by huangfusuper

修正代码校验方式

parent 85311d4e
...@@ -4,19 +4,14 @@ import com.byit.annotation.MetaAnnotation; ...@@ -4,19 +4,14 @@ import com.byit.annotation.MetaAnnotation;
import com.byit.annotation.ParamValidation; import com.byit.annotation.ParamValidation;
import com.byit.annotation.annotationselector.NotNull; import com.byit.annotation.annotationselector.NotNull;
import com.byit.exception.DataValidationException; import com.byit.exception.DataValidationException;
import com.byit.validation.Validation; import com.byit.utils.NotParamValidationUtil;
import com.byit.validation.impl.NotParamValidationImpl; import com.byit.utils.ParamValidationUtil;
import com.byit.validation.impl.ParamValidationImpl;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Conditional;
import org.springframework.stereotype.Component;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Method; import java.lang.reflect.Method;
...@@ -28,14 +23,6 @@ import java.lang.reflect.Method; ...@@ -28,14 +23,6 @@ import java.lang.reflect.Method;
public class CheckerAspect { public class CheckerAspect {
private static final Logger log = LoggerFactory.getLogger(CheckerAspect.class); private static final Logger log = LoggerFactory.getLogger(CheckerAspect.class);
private final Validation notParamValidation;
private final Validation paramValidation;
public CheckerAspect(Validation notParamValidation, Validation paramValidation) {
this.notParamValidation = notParamValidation;
this.paramValidation = paramValidation;
}
@Around("@annotation(com.byit.annotation.DataValidation)") @Around("@annotation(com.byit.annotation.DataValidation)")
public Object dataValidation(ProceedingJoinPoint joinPoint) throws Throwable { public Object dataValidation(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("------------------进入拦截器拦截------------------"); log.info("------------------进入拦截器拦截------------------");
...@@ -90,7 +77,7 @@ public class CheckerAspect { ...@@ -90,7 +77,7 @@ public class CheckerAspect {
boolean isPresenceParamValidationAnnotation = annotation.annotationType().equals(ParamValidation.class); boolean isPresenceParamValidationAnnotation = annotation.annotationType().equals(ParamValidation.class);
if(isPresenceParamValidationAnnotation){ if(isPresenceParamValidationAnnotation){
//ParamValidationImpl paramValidationImpl = new ParamValidationImpl(); //ParamValidationImpl paramValidationImpl = new ParamValidationImpl();
paramValidation.isValidation(param); ParamValidationUtil.isValidation(param);
continue; continue;
} }
...@@ -99,7 +86,7 @@ public class CheckerAspect { ...@@ -99,7 +86,7 @@ public class CheckerAspect {
//如果存在 //如果存在
if(annotationPresent){ if(annotationPresent){
//NotParamValidationImpl notParamValidation = new NotParamValidationImpl(); //NotParamValidationImpl notParamValidation = new NotParamValidationImpl();
notParamValidation.isValidation(annotation,param); NotParamValidationUtil.isValidation(annotation,param);
continue; continue;
} }
} }
......
...@@ -2,10 +2,6 @@ package com.byit.config; ...@@ -2,10 +2,6 @@ package com.byit.config;
import com.byit.aspect.CheckerAspect; import com.byit.aspect.CheckerAspect;
import com.byit.properties.ValidationProperties; import com.byit.properties.ValidationProperties;
import com.byit.utils.SpringUtil;
import com.byit.validation.Validation;
import com.byit.validation.impl.NotParamValidationImpl;
import com.byit.validation.impl.ParamValidationImpl;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -17,23 +13,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -17,23 +13,7 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties(ValidationProperties.class) @EnableConfigurationProperties(ValidationProperties.class)
public class ValidationAuthConfigure { public class ValidationAuthConfigure {
/**
* 无注解 @ParamValidation 配置
* @return 返回NotParamValidationImpl对象
*/
@Bean
public Validation getNotParamValidation(){
return new NotParamValidationImpl();
}
/**
* 有注解 @ParamValidation 配置
* @return
*/
@Bean
public Validation getParamValidation(){
return new ParamValidationImpl();
}
/** /**
* 注册切面 * 注册切面
...@@ -41,11 +21,7 @@ public class ValidationAuthConfigure { ...@@ -41,11 +21,7 @@ public class ValidationAuthConfigure {
*/ */
@Bean @Bean
public CheckerAspect getCheckerAspect(){ public CheckerAspect getCheckerAspect(){
return new CheckerAspect(getNotParamValidation(),getParamValidation()); return new CheckerAspect();
} }
@Bean
public SpringUtil springUtil(){
return new SpringUtil();
}
} }
...@@ -2,9 +2,7 @@ package com.byit.selector; ...@@ -2,9 +2,7 @@ package com.byit.selector;
import com.byit.annotation.annotationselector.EmailValidation; import com.byit.annotation.annotationselector.EmailValidation;
import com.byit.exception.DataValidationException; import com.byit.exception.DataValidationException;
import com.byit.properties.ValidationProperties;
import com.byit.selector.interfaces.ValidationSelector; import com.byit.selector.interfaces.ValidationSelector;
import com.byit.utils.SpringUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
package com.byit.validation.impl; package com.byit.utils;
import com.byit.annotation.MetaAnnotation; import com.byit.annotation.MetaAnnotation;
import com.byit.exception.DataValidationException; import com.byit.exception.DataValidationException;
import com.byit.selector.interfaces.ValidationSelector; import com.byit.selector.interfaces.ValidationSelector;
import com.byit.validation.AbstractValidation;
import org.springframework.stereotype.Component;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Method; import java.lang.reflect.Method;
...@@ -13,7 +11,7 @@ import java.lang.reflect.Method; ...@@ -13,7 +11,7 @@ import java.lang.reflect.Method;
* 这个是不需要验证内部属性是否需要校验,只需要验证其本身是否通过规定校验的 * 这个是不需要验证内部属性是否需要校验,只需要验证其本身是否通过规定校验的
* @author huangfu * @author huangfu
*/ */
public class NotParamValidationImpl extends AbstractValidation { public class NotParamValidationUtil {
/** /**
...@@ -21,8 +19,7 @@ public class NotParamValidationImpl extends AbstractValidation { ...@@ -21,8 +19,7 @@ public class NotParamValidationImpl extends AbstractValidation {
* @param annotation 参数上的注解 * @param annotation 参数上的注解
* @param value * @param value
*/ */
@Override public static void isValidation(Annotation annotation,Object value){
public void isValidation(Annotation annotation,Object value){
try{ try{
//获取此注解上的元注解 //获取此注解上的元注解
MetaAnnotation metaAnnotation = annotation.annotationType().getAnnotation(MetaAnnotation.class); MetaAnnotation metaAnnotation = annotation.annotationType().getAnnotation(MetaAnnotation.class);
......
package com.byit.validation.impl; package com.byit.utils;
import com.byit.annotation.MetaAnnotation; import com.byit.annotation.MetaAnnotation;
import com.byit.exception.DataValidationException; import com.byit.exception.DataValidationException;
import com.byit.selector.interfaces.ValidationSelector; import com.byit.selector.interfaces.ValidationSelector;
import com.byit.validation.AbstractValidation;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Field; import java.lang.reflect.Field;
...@@ -15,14 +12,13 @@ import java.lang.reflect.Method; ...@@ -15,14 +12,13 @@ import java.lang.reflect.Method;
* 这个是需要验证其内部属性是否通过校验的实现类 * 这个是需要验证其内部属性是否通过校验的实现类
* @author huangfu * @author huangfu
*/ */
public class ParamValidationImpl extends AbstractValidation { public class ParamValidationUtil {
/** /**
* 校验实现 * 校验实现
* @param object * @param object
*/ */
@Override public static void isValidation(Object object){
public void isValidation(Object object){
try { try {
//获取的是方法参数的类的对象 //获取的是方法参数的类的对象
Class<?> aClass = object.getClass(); Class<?> aClass = object.getClass();
......
package com.byit.utils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring工具类
* @author huangfu
*/
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringUtil.applicationContext == null) {
SpringUtil.applicationContext = applicationContext;
}
}
/**
* 获取applicationContext
* @return 返回applicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 通过name获取 Bean.
* @param name
* @return
*/
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
/**
* 通过class获取Bean.
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
/**
* 通过name,以及Clazz返回指定的Bean
* @param name
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
...@@ -2,7 +2,6 @@ package com.byit.utils; ...@@ -2,7 +2,6 @@ package com.byit.utils;
import com.byit.adaptation.ValidationAdaptation; import com.byit.adaptation.ValidationAdaptation;
import com.byit.exception.DataValidationException; import com.byit.exception.DataValidationException;
import com.byit.validation.impl.ParamValidationImpl;
/** /**
* 规则校验工具类 * 规则校验工具类
...@@ -114,7 +113,7 @@ public class ValidationUtil { ...@@ -114,7 +113,7 @@ public class ValidationUtil {
* @param object * @param object
*/ */
public static void modelIsAnnotationValidation(Object object){ public static void modelIsAnnotationValidation(Object object){
SpringUtil.getBean(ParamValidationImpl.class).isValidation(object); ParamValidationUtil.isValidation(object);
} }
/** /**
......
package com.byit.validation;
import java.lang.annotation.Annotation;
/**
* 适配器
* @author huangfu
*/
public class AbstractValidation implements Validation {
@Override
public void isValidation(Annotation annotation, Object object) {
}
@Override
public void isValidation(Object object) {
}
}
package com.byit.validation;
import java.lang.annotation.Annotation;
/**
* 真正的校验实现
* @author huangfu
*/
public interface Validation {
/**
* 这个是不需要验证内部属性是否需要校验,只需要验证其本身是否通过规定校验的
* @param annotation
* @param object
*/
void isValidation(Annotation annotation, Object object);
/**
* 这个是需要验证其内部属性是否通过校验的实现类
* @param object
*/
void isValidation(Object object);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment