面向切面编程可以方便我们对系统进行监控。最近正在学习AOP,而@Around使用的应该是最多的。我们可以在切面逻辑中得到连接点的名字和所在类名。方便我们快速定位到系统中出现问题的地方。
例子:
@Component //和sping整合的时候必须要这个注解,否则sping容器解析不到该切面导致切面不能工作
@Aspect
public class AOPConfig {
@Pointcut(value="execution(* spring.aop.Demo.*(..))")
public void pointCut(){
}
@Around("pointCut()")
public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
Object ob = null;
System.out.println(pjp.getSignature().getDeclaringType());
//通过pjp对象获取Signature对象,该对象封装了连接点的信息。比如通过getDeclaringType获取连接点所在类的 class对象
//getName获取连接点的名称即方法名。
System.out.println("---------------------------");
pjp.proceed();
System.out.println("---------------------------");
return ob;
}