weixin_精慕门2109823
Bruth_Lee
好坑,我在
<context:component-scan base-package="com.imooc.aop.aspectj.*" />
这个地方多写了一个.* 就导致aspect 没扫描上!!
友人JAVA
AfterReturning是带有返回值的通知,所以需要在After以后执行。
追随奔跑的_蜗牛
需要单独配置bean节点,实现接入类
北海北极熊
可以这样 @Around(“execution(com.xyz.myapp.systemArctecture.businessService()) && args(param1,param2)”)
蝉時雨
个人认为afterReturning是获取函数的返回值,而after作为一个函数也是有返回值,所以afterReturning在after
呜呜呜呜喵王
你的@Before中的pointcut路径是:com.imooc.aop.aspectj.biz.*Biz.*(..),然而你的biz的路径是com.imooc.aop.aspectJ.biz.MoocBiz,一个大写J一个小写j,看到了吗,根本没有切对,自然没有结果。
水木星火
@Component
@Aspect
@Configuration
@EnableAspectJAutoProxy
以下是xml:
@Component
@Aspect
.xml文件中加入<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
阳光洒在路上就不怕心碎f
问题解决了:这里写错了 @Pointcut("with(com.imooc.aop.aspectj.biz.*)")
改成@Pointcut("within(com.imooc.aop.aspectj.biz.*)")
就ok了。
此夜望月
这个根据环境不同而不同
我的和你一样
根据实际情况为准
未卜先知
以前也是after在afterR额turning之前。
yunkchen
MLYT
我也是
qq_愿有智慧_03738976
具体原因有两个,已经找到
@Component注解
@aspect.xml中配置缺少<aop:aspectj-autoproxy></aop:aspectj-autoproxy>


java家洼
直接看caused by后面的代码,然后如果英文不懂的话就可以百度了,我也是菜鸟,不知道能不能帮你
hmaggie
我执行的代码结果是这样的:

ryan_kong
抗货产品汪
1.这里的可以把这里public void pointcut() {}方法理解成具体pointcut(切入点)的声明,实际对应的切入点是“execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))”;
2.@AfterReturning,是在返回后执行,returning="returnValue"的“returnValue”就是具体的方法(* com.imooc.aop.aspectj.biz.*Biz.*(..))的返回值,对应public void afterReturning(Object returnValue)
的方法参数,名称一定要对应,在方法返回后,可以进行一些操作,比如输出返回值或者根据返回值进行一些操作。
这样解释,不知道你清楚了没有