社区
Java EE
帖子详情
对类的静态方法aop不生效,该如何实现
ITJohnMayer
2019-08-07 11:40:30
怎么实现,帮忙指点下
...全文
838
5
打赏
收藏
对类的静态方法aop不生效,该如何实现
怎么实现,帮忙指点下
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
林雨-
2020-04-13
打赏
举报
回复
call(* android.util.Log.*(..)) 这个是可以执行的
林雨-
2020-04-13
打赏
举报
回复
不知道你是要拦截静态方法执行还是静态方法的调用,这两者是有区别的。 1. 静态方法的
执行是拦截不到
的; 2. 静态方法的
调用是可以拦截
的;
maradona1984
2019-08-08
打赏
举报
回复
spring应该是没法对静态方法做aop的(或许我孤陋寡闻) 你可以尝试下aspectj-maven-plugin 这个是maven编译时的字节码增强,但实际我没有测试过,不知道其局限性,所以不太清楚能解决你的问题 https://yanbin.blog/maven-plugin-aspectj-weaving/
瘦死的黑骆驼
2019-08-08
打赏
举报
回复
1
aop,不管是cglib还是jdk的动态代理,里面都会传递目标对象,然后利用反射method.invoke(target,args),明显静态方法无法处理
沁海棠
2019-08-08
打赏
举报
回复
貌似java Agent可以,我也不了解。
android
aop
静态方法
,spring
aop
不能对
静态方法
进行增强解决
如果一定要增强
静态方法
,我们可以对目标类使用单例模式,然后通过调用实例方法去调用那个
静态方法
,而且对应的对象实例必须纳入spring容器管理,因此可以使用@Component申明下(注意不能直接new,直接new的对象不会...
类的
静态方法
无法使用
aop
拦截
类的
静态方法
无法使用
aop
拦截
Spring
Aop
代理
不生效
3,被代理的类如果不是由spring管理的话代理
不生效
,因为Spring
AOP
的底层是依赖于IOC管理对应的bean 4,若是被代理的类,被增强的方法中内部调用了被增强的方法。第二个方法的代理也会失效 5, 解决方案: ...
为什么spring
aop
没办法切入、拦截、代理static修饰的
静态方法
?
因为spring的
aop
实现
原理是通过JDK或者cglib为目标接口或者目标类生成一个代理对象,在这个生成的代理对象中,对要切入的方法进行重写,以此来
实现
各种想要的切面业务操作。那为什么
aop
无法切入static修饰的
静态方法
...
@Around对
静态方法
不生效
问题
在处理定时任务时,由于这几个方法都是
静态方法
,在
aop
的切面中使用@Around注解,进行监控方法调用是否有异常。发现
aop
没有生效。代码如下: /*切面类*/ @Aspect @Component public class Retry
Aop
{ private ...
Java EE
67,549
社区成员
225,863
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章