锁定老帖子 主题:我对AOP的理解
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-15
挺有条理的,知道了AOP是这么发展了的
|
|
返回顶楼 | |
发表时间:2012-04-16
dbdbgs 写道 挺有条理的,知道了AOP是这么发展了的
|
|
返回顶楼 | |
发表时间:2013-01-11
遇到一个问题求教楼主:
@Aspect public class Ti { @Around("execution(@Asit * *(..))") public Object around(ProceedingJoinPoint pjp){ System.out.println("run Aspect..."); } } public class Actpt { @Asit public static void main(String[] args) { System.out.println("!!!!!!!111"); } } public @interface Asit { } 这样运行拦截不到,不显示 "run Aspect...",求指教! |
|
返回顶楼 | |
发表时间:2013-01-12
raykcn 写道 遇到一个问题求教楼主:
@Aspect public class Ti { @Around("execution(@Asit * *(..))") public Object around(ProceedingJoinPoint pjp){ System.out.println("run Aspect..."); } } public class Actpt { @Asit public static void main(String[] args) { System.out.println("!!!!!!!111"); } } public @interface Asit { } 这样运行拦截不到,不显示 "run Aspect...",求指教! @interface咋定义的,需要RetentionPolicy.RUNTIME |
|
返回顶楼 | |
发表时间:2013-01-12
最后修改:2013-01-12
引用 @interface咋定义的,需要RetentionPolicy.RUNTIME
是我上面写的那样定义的,我是想做个拦截器,话说其实不用RetentionPolicy.RUNTIME应该也可以,但是是否在其他地方也要配置什么呢? 额,我加入了RetentionPolicy.RUNTIME 测试了,效果一样,还是不显示 “run Aspect...” 。 我没有用到 struts spring 只是用的Aspectjrt、Aspectjweaver这两个包。 又或是麻烦楼主 基于我上面的三个类 修改一下 让拦截器生效就行,呵呵 麻烦楼主了,万分感激!! 我Google一圈,提到Aspect的都有spring或struts2,实在是没看到独立介绍的实例。 |
|
返回顶楼 | |
发表时间:2013-01-13
raykcn 写道 引用 @interface咋定义的,需要RetentionPolicy.RUNTIME
是我上面写的那样定义的,我是想做个拦截器,话说其实不用RetentionPolicy.RUNTIME应该也可以,但是是否在其他地方也要配置什么呢? 额,我加入了RetentionPolicy.RUNTIME 测试了,效果一样,还是不显示 “run Aspect...” 。 我没有用到 struts spring 只是用的Aspectjrt、Aspectjweaver这两个包。 又或是麻烦楼主 基于我上面的三个类 修改一下 让拦截器生效就行,呵呵 麻烦楼主了,万分感激!! 我Google一圈,提到Aspect的都有spring或struts2,实在是没看到独立介绍的实例。 如把代码站内信我,我看下吧 |
|
返回顶楼 | |
发表时间:2013-01-13
最后修改:2013-01-13
站内信附件代码已发送,请查收,万分感谢楼主!
并且刚才我找了一篇博文: http://www.cnblogs.com/louzj82/archive/2010/04/28/1722967.html 我原样做,都不行,就是不能切入。 我用 HelloWorld MainTest 还有 annotation的AspectjAn 一共三个类。jar是aspectjweaver.jar和aspectjrt.jar是1.7.1版本的,从eclipse官方下载的 |
|
返回顶楼 | |
发表时间:2013-01-14
raykcn 写道 站内信附件代码已发送,请查收,万分感谢楼主!
并且刚才我找了一篇博文: http://www.cnblogs.com/louzj82/archive/2010/04/28/1722967.html 我原样做,都不行,就是不能切入。 我用 HelloWorld MainTest 还有 annotation的AspectjAn 一共三个类。jar是aspectjweaver.jar和aspectjrt.jar是1.7.1版本的,从eclipse官方下载的 1、 package com.tes; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface Asit { } 2、 package com.tes; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @Aspect public class Ti { @Around("execution(@com.tes.Asit * *(..))") public Object around(ProceedingJoinPoint pjp) { System.out.println("run Aspect..."); return pjp.proceed(); } } 方法签名是这样的: public Object around(ProceedingJoinPoint pjp) ; 3、 package com.tes; public class Actpt { @Asit public void test() { System.out.println("!!!!!!!111"); } } 4、配置文件 <bean id="actpt" class="com.tes.Actpt"/> <bean class="com.tes.Ti"/> <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy> |
|
返回顶楼 | |
发表时间:2013-01-14
jinnianshilongnian 写道 4、配置文件 <bean id="actpt" class="com.tes.Actpt"/> <bean class="com.tes.Ti"/> <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy> 不理解,我没有用spring,只是想用aspectj,所以没有用配置文件。 楼主看一下这个博文: http://www.cnblogs.com/louzj82/archive/2010/04/28/1722967.html 并没有用到配置文件。 继续求解!!! |
|
返回顶楼 | |
发表时间:2013-01-14
raykcn 写道 jinnianshilongnian 写道 4、配置文件 <bean id="actpt" class="com.tes.Actpt"/> <bean class="com.tes.Ti"/> <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy> 不理解,我没有用spring,只是想用aspectj,所以没有用配置文件。 楼主看一下这个博文: http://www.cnblogs.com/louzj82/archive/2010/04/28/1722967.html 并没有用到配置文件。 继续求解!!! 1切入点错了,应该为 @Around("execution(@com.tes.Asit * *(..))") 2 环绕通知也不是那么写 都是语法错误 |
|
返回顶楼 | |