【发布时间】:2014-06-13 04:11:34
【问题描述】:
好的,这个问题以前从未在网络上被问过,所以这里是: 我正在学习 Java(初中级),我决定通过尝试面向方面的编程来领先于课堂课程。
现在这东西应该很容易学习(至少这是网络共识) 以至于“方面”据说是标准类的略微修改版本, 所以我的问题是:如果方面基本上是类,
为什么我们必须安装 AspectJ 才能在 Java 中进行 AOP?
因为这只是增加了一层额外的复杂性,使这个概念更难掌握。
我想要的是能够在不使用 AspectJ(或任何其他附加组件)的情况下编写一个方面,换句话说,我想只使用 BASIC Java 及其标准 Java 类来执行 AOP。有可能吗?如果可以,我该如何编写这些类?
【问题讨论】:
-
当然可以。你甚至不需要另一个框架(比如 Spring AOP)。在时间的考验中,AspectJ 顺便也未能获得动力。例如,属性 + 反射可以成为为框架执行 AOP 的一种方式。
-
是的好问题..我们可以编写反射类型的代码并使用正则表达式根据之前、之后和周围的指令调用方法..我们可以解决它但需要更多时间。 .
-
感谢各位。看起来我还有很长的路要走,因为反射和这样的(与内省有关)暂时超出了我的范围。大声笑我想问我的问题的另一种方式是,如何将(简单)AspectJ 编码的程序转换为纯 Java 程序,并且尽可能少地进行修改?