AspectJ\Spring AOP - замена всего метода

У меня есть следующий метод:

public ClassifyCamel(Camel camel) {

 if (camel.isHavingSingleHump()) {
 return SINGLE_HUMP_CAMEL;
 } 
 }

Возможно ли создать аспект, который заменяет всю логику метода? например:

@Aspect
 .
 .

 @Before("ClassifyCamel") {

 if (camel.isRich) {
 return RICH_CAMEL;
 }
 }

Лучший.

1 ответ

Вы можете использовать совет @Around для выполнения некоторого журнала до и после выполнения вашего метода.

Здесь вы можете проверить пример:

@Aspect
public class LoggingAspect {

 @Around("execution(* com.yourPackage.YourClass.yourMethod(..))")
 public void logAround(ProceedingJoinPoint joinPoint) throws Throwable {

 System.out.println("Around before is running!");

 /*
 * IF YOU DON'T DO THIS YOU CAN SKIP YOUR METHOD EXECUTION. 
 * You can do whatever you need
 */
 joinPoint.proceed(); //execute the method. 

 System.out.println("Around after is running!");

 }

}

Надеюсь помочь

licensed under cc by-sa 3.0 with attribution.