面向切面编程可以方便我们对系统进行监控。最近正在学习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;
        
    }

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐