@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Convert {
}
@Aspect
@Component
@Slf4j
public class CovertEntityAspect {
@Pointcut("@annotation(com.meishubao.app.service.account.config.Convert)")
private void pointCut() {
}
@Around(value = "pointCut()")
public Object before(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("covert()方法执行开始...");
Object[] args = joinPoint.getArgs();
Object[] args1;
for (int i = 0; i < args.length; i++) {
if (args[i] instanceof BaseEntity) {
String modelName = args[i].getClass().getName().replace(".model.", ".entity.");
Class<?> aClass1 = Class.forName(modelName);
Object object = aClass1.newInstance();
BeanUtils.copyProperties(args[i], object);
args[i] = object;
}
}
return joinPoint.proceed(args);
}
}