AI智能
改变未来

ClassCastException: org.springframework.aop.aspectj.AspectJExpressionPointcut


问题

Exception in thread \"main\" java.lang.ClassCastException: org.springframework.aop.aspectj.AspectJExpressionPointcut cannot be cast to com.wei.service.IAccountServiceat AOPTest.main(AOPTest.java:9)

原因

  • 将切点表达式的id与AccountService的实现类的bean的id取了一样的名字。
<bean id=\"accountService\" class=\"com.wei.service.impl.AccountServiceImpl\" ></bean><aop:config ><aop:pointcut id=\"accountService\" expression=\"execution(* com.wei.service.*.*(..))\"/><aop:aspect id=\"logAdvice\" ref=\"logger\"><!--配置通知的类型,并且建立通知的方法和切入点方法的关联。--><aop:before method=\"printLog\" pointcut-ref=\"accountService\" /></aop:aspect></aop:config>

解决

  • 修改id即可。
<bean id=\"accountService\" class=\"com.wei.service.impl.AccountServiceImpl\" ></bean><aop:config ><aop:pointcut id=\"servicePointCut\" expression=\"execution(* com.wei.service.*.*(..))\"/><aop:aspect id=\"logAdvice\" ref=\"logger\"><!--配置通知的类型,并且建立通知的方法和切入点方法的关联。--><aop:before method=\"printLog\" pointcut-ref=\"servicePointCut\" /></aop:aspect></aop:config>

总结

  • 如果以后看见类型转换异常,先看是什么类型转换异常,然后再从它的配置入手。
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » ClassCastException: org.springframework.aop.aspectj.AspectJExpressionPointcut