如题,静态方法!静态方法!静态方法!重要的事情说三遍!之前在百度知道也提了问但是没有结果。
经测试,目前得知:“普通方法”可以使用AspectJ 或者spring-aop进行代理增强;“静态方法”可以使用java反射模拟实现切面编程。利用java反射机制,在Method的invoke()前后进行拦截处理即可。
然而使用java的反射机制,只能“主动”进行拦截处理,因为无法设置切入点监听静态方法执行,必须主动调用指定的静态方法,无法像spring-aop一样,只要方法被调用,可以被监听到,“被动”地进行拦截处理。
现在还需要研究一下是否能实现与spring-aop类似的功能,利用注解等形式在静态方法被调用时触发拦截。
或者有没有什么办法可以监控java任意或指定静态函数的调用?类似于添加Listener,只要指定静态函数被调用,即可被监听到?
经测试,目前得知:“普通方法”可以使用AspectJ 或者spring-aop进行代理增强;“静态方法”可以使用java反射模拟实现切面编程。利用java反射机制,在Method的invoke()前后进行拦截处理即可。
然而使用java的反射机制,只能“主动”进行拦截处理,因为无法设置切入点监听静态方法执行,必须主动调用指定的静态方法,无法像spring-aop一样,只要方法被调用,可以被监听到,“被动”地进行拦截处理。
现在还需要研究一下是否能实现与spring-aop类似的功能,利用注解等形式在静态方法被调用时触发拦截。
或者有没有什么办法可以监控java任意或指定静态函数的调用?类似于添加Listener,只要指定静态函数被调用,即可被监听到?