Czy ktoś może mi powiedzieć, jaka jest różnica między Joinpoint
a Proceedingjoinpoint
?Joinpoint VS ProceedingJoinPoint w AOP przy użyciu aspectJ?
Kiedy stosować Joinpoint
i Proceedingjoinpoint
w metodzie aspektu?
użyłem JoinPoint
w moim AspectJ class
jak,
@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("************************");
}
Ale niektórzy, co widzę w innych zasobów jest
@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();
}
}
Tutaj co ProceedingJoinPoint
zrobi specjalny porównać do „JointPoint`?
Co nam zrobi pjp.proceed()
?
Niż dla twojej odpowiedzi .. Więc mówisz, że 'pjp.proceed()' wywoła metodę 'addBook()' dwa razy? –
Nie, najpierw wywoła metodęAddAdvice. Następnie wywoła metodę addBook(). –
Możesz to zobaczyć poprzez debugowanie. –