面向方面编程语言中如何使用切入点将功能添加到现有程序中?
据我所知,来自这篇维基百科的文章 – 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;
}
}
这里,“执行(public * my.service.package.*(..))”是切入点:它指定将为其执行建议的连接点集(执行所有类中的所有方法)服务包).