微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 确定哪些方面挂钩到给定的类

是否有可能确定哪些方面挂钩到给定的类并获得对其实例的访问?

就像是:

Foo foo = new Foo();
List<Object> aspects = getAllAspectsOf(foo);

解决方法

首先,您很可能无法使用现有的Aspect API进行任何此类监视,因为Aspect包装器拦截调用,其特定目的是将NOT绑定到任何一个特定组件,因此没有任何自然的方法来检测拦截方面.

也就是说 – 可能有一种方法可以将方面包含在某种策略类中,但是,维护它的工作量非常大.

http://www.eclipse.org/aspectj/doc/released/faq.php#q:benefits

方面通常被描述为“在您的其他代码之上”或“编织”,即在运行时或构建时.

http://asm.ow2.org/users.html

因此,鉴于这种方面实现的范例,您的代码通常不会“意识到”任何此类面向方面的特性.

但是,如果您想要可跟踪的方面,您可以使用标准的java和依赖注入实现一些Aspect“like”功能 – 也就是说,通过在运行时加载注入的模块来实现一个方面将实现的一些交叉功能……但是,我怀疑,如果你真的在做严肃的面向方面的代码,那么这种方法将达不到你的面向方面的要求.

原文地址:https://www.jb51.cc/java/128760.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐