title: Joinpoint VS ProceedingJoinPoint in AOP using aspectJ?
body: <p>Can any one tell me what is the difference between <code>Joinpoint</code> and  <code>Proceedingjoinpoint</code>?</p>
  
  <p>When to use <code>Joinpoint</code> and <code>Proceedingjoinpoint</code> in the method of aspect class?</p>
  
  <p>I used the <code>JoinPoint</code> in my AspectJ class like:</p>
  
  <pre><code>@Pointcut("execution(* com.pointel.aop.test1.AopTest.beforeAspect(..))")  
  public void adviceChild(){}  
  
  @Before("adviceChild()")  
  public void beforeAdvicing(JoinPoint joinPoint /*,ProceedingJoinPoint pjp - used refer book marks of AOP*/){ 
  
      //Used to get the parameters of the method !
      Object[] arguments = joinPoint.getArgs();
      for (Object object : arguments) {
          System.out.println("List of parameters : " + object);
      }
  
      System.out.println("Method name : " + joinPoint.getSignature().getName());
      log.info("beforeAdvicing...........****************...........");
      log.info("Method name : " + joinPoint.getSignature().getName());
      System.out.println("************************"); 
  }
  </code></pre>
  
  <p>But what I see in other resources is: </p>
  
  <pre><code>@Around("execution(* com.mumz.test.spring.aop.BookShelf.addBook(..))")
  public void aroundAddAdvice(ProceedingJoinPoint pjp){
      Object[] arguments = pjp.getArgs();
      for (Object object : arguments) {
          System.out.println("Book being added is : " + object);
      }
      try {
          pjp.proceed();
      } catch (Throwable e) {
          e.printStackTrace();
      }
  } 
  </code></pre>
  
  <p>Here what will <code>ProceedingJoinPoint</code> do differently compare to 'JointPoint<code>? Also what will</code>pjp.proceed()` do for us?</p>