我可以在Scala中进行面向方面编程吗?

时间:2011-02-17 06:20:44

标签: scala aop

我不是在谈论模仿Scala中的AOP功能(即使用Traits而不是Aspects),我想知道是否有可能在Scala中做真正的AOP(即建议,方面,关节点,编织等... )

2 个答案:

答案 0 :(得分:28)

Mixin是在Scala中引入AOP的经典方式(如JonasBonér的“AOP-style Mixin Composition Stacks in Scala”)。

但我只知道“Method Proxy-Based AOP in Scala”(Daniel Spiewak - also here on SO - 和Tian Zhao)作为Scala中的高级AOP实现(source code here)。

  

我们的技术使用Scala的高阶函数来拦截方法调用,而基本程序的语法开销最小。
  此框架允许开发人员通过指定类类型和方法签名来定义切入点。框架还允许访问上下文变量,而方面可以在建议主体之前或之后插入建议代码。

答案 1 :(得分:6)

我们使用Spring AOP和Scala类没有任何问题。它不会进行任何字节码修改(仅代理)。