Spring 配置报错 org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression

Miracle_lucy 2016-10-10 11:18:47

@Aspect()
public class HelloWorldAspect {

//@Pointcut(value="execution(* com.baker.example.*(..)) && args(param)", argNames = "param")
@Pointcut(value="execution(* com.baker.example..*.*(..))")
public void beforePointcut() {}

@Before(value = "beforePointcut()")
public void beforeAdvice(JoinPoint jp) {
System.out.println("===========before advice param:" + jp.getSignature().getName());
}
}

public class HelloWorldService {
public void sayBefore(String str){

System.out.println("-----------hello world!!------------------"+str);
}
}



<bean id="helloWorldService"
class="com.baker.example.HelloWorldService"/>
<bean id="aspect" class="com.baker.example.HelloWorldAspect"/>
...全文
765 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Miracle_lucy 2016-10-10
  • 打赏
  • 举报
回复
在网上找资源,都是版本原因的: 如果要使用AspectJ完成注解切面需要注意下面的JDK与AspectJ的匹配:   JDK1.6 —— aspectJ1.6   JDK1.7 —— aspectJ1.7.3+   我这里搜到了一个1.7.4的版本,亲测可用。 http://www.cnblogs.com/xing901022/p/4267563.html 版本已经替换成新的,但是依然报错。我报的这个错貌似不是因为版本, 初学不知道到底哪里配置错了 还是表达式写的有误?请指点一二。
Miracle_lucy 2016-10-10
  • 打赏
  • 举报
回复
报错信息:

6-10-10 10:41:30,911][DEBUG] - Found AspectJ method: public void com.baker.example.HelloWorldAspect.beforeAdvice(org.aspectj.lang.JoinPoint)
[2016-10-10 10:41:30,957][INFO] - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@10713c7: defining beans [org.springframework.aop.config.internalAutoProxyCreator,helloWorldService,aspect]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloWorldService' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut beforePointcut
Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut beforePointcut
	at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:317)
	at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:189)
	at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:176)
	at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:157)
	at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:189)
	at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:244)
	at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:278)
	at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:83)
	at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:66)
	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:296)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:313)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1181)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
	at com.baker.example.Test.testAnnotationBeforeAdvice(Test.java:17)
	at com.baker.example.Test.main(Test.java:25)
Miracle_lucy 2016-10-10
  • 打赏
  • 举报
回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧