面向方面的编程语言中如何使用切入点将功能添加到现有程序中?

据我了解,从这篇维基百科文章-http://en.wikipedia.org/wiki/Pointcut

将切入点放置在一段代码中的特定位置,并且当到达该点时,基于切入点的评估,可以基于切入点的评估在代码中某处的特定点执行更多代码。这是正确的理解吗?

如果是这样,那将增加功能,因为程序员可以根据该评估执行不同的代码段。

最佳答案

例如,我有一个带有许多服务对象的应用程序,并且想为每种方法计时。使用AspectJ表示法:

class MyAspect
{
    @Around("execution(public * my.service.package.*(..))")
    public Object aroundAdvice(JoinPoint jp)
    {
       // start timer
       Object o = jp.proceed();
       // stop timer, etc.
       return o;
    }
}


在这里,“ execution(public * my.service.package。*(..))”是切入点:它指定了将为其执行建议的连接点集(将执行建议中所有类中所有方法的执行服务包)。

关于aop - 切入点和面向方面的编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4382632/

10-12 04:23