以上方法报错:11:07:11.858 [quartzScheduler_Worker-2] ERROR c.r.q.u.AbstractQuartzJob - [execute,49] - 任务执行异常 - :
时间: 2024-04-09 18:33:29 浏览: 54
非常抱歉,我之前提供的代码可能存在问题。在Spring Boot和Vue框架下,无法直接通过判断调用堆栈来准确地判断方法的调用方式。
在Spring Boot中,可以使用AOP(面向切面编程)来实现方法的拦截和判断。以下是一个修正后的示例代码:
```java
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class InvocationTypeAspect {
@Before("execution(public * com.example.demo.YourController.*(..))")
public void beforeMethodInvocation(JoinPoint joinPoint) {
boolean isScheduledInvocation = false;
// 判断被调用的方法是否被@Scheduled注解修饰
if (joinPoint.getSignature().getDeclaringType().isAnnotationPresent(Scheduled.class)) {
isScheduledInvocation = true; // 被@Scheduled注解修饰,表示是定时任务调用
}
// 输出调用方式
System.out.println("调用方式:" + (isScheduledInvocation ? "定时任务调用" : "普通方式调用"));
}
}
```
在这个示例中,我们使用了Spring的AOP功能,通过定义一个切面类和@Before注解,拦截指定包下的所有方法调用。在拦截方法中,通过判断被调用的方法是否被@Scheduled注解修饰,来判断方法的调用方式。
你可以根据实际的业务需求,将`com.example.demo.YourController`替换为你的Controller类所在的包路径,以确保只拦截指定包下的方法调用。
希望这次能够帮到你,如果还有其他问题,请随时提问。
阅读全文