fix: 修复当定时任务调用方法所在的Bean是一个AOP代理类时,添加或修改该定时任务配置会出现空指针异常的问题

pull/451/head
潇湘振宇 2023-04-30 10:50:04 +08:00
parent 6cda0a3425
commit 8539c5b40a
1 changed files with 6 additions and 0 deletions

View File

@ -11,6 +11,8 @@ import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.springframework.aop.support.AopUtils;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.ScheduleConstants;
import com.ruoyi.common.exception.job.TaskException;
@ -138,8 +140,12 @@ public class ScheduleUtils
return StringUtils.containsAnyIgnoreCase(invokeTarget, whiteList);
}
Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]);
if (AopUtils.isAopProxy(obj)) {
obj = AopUtils.getTargetClass(obj);
}
String beanPackageName = obj.getClass().getPackage().getName();
return StringUtils.containsAnyIgnoreCase(beanPackageName, whiteList)
&& !StringUtils.containsAnyIgnoreCase(beanPackageName, Constants.JOB_ERROR_STR);
}
}