Как заставить Аспект работать на всех добытчиков в Pojo - PullRequest
0 голосов
/ 20 сентября 2019

Я собираюсь сделать некоторые обновления для всех получателей в Pojo, используя Aspect и Spring AOP.Я хотел бы сделать что-то, как я могу получить "ха-ха" + Str, когда я получаю геттер.

Вот мой Аспект:

@Slf4j
@Aspect
@Configuration
public class GetterAspect {
  @Before("execution(* com.docusign.docusign.dto.AspectPojo.getName())")
  public void before(JoinPoint joinPoint) {
    log.info(" Check before pojo");
    log.info("", joinPoint);
  }
}

Вот мой Pojo:

@Data
public class AspectPojo {
  private String name;
  private String email;
}

Вот мой тестовый ctrl:

@GetMapping
public AspectPojo get() {
  AspectPojo pojo = aspectManager.getPojo();
  log.info(pojo.getName());
  return pojo;
}

Я не могу вызвать срабатывание pointcut, буду признателен, если кто-нибудь сможет помочь.

1 Ответ

0 голосов
/ 20 сентября 2019

Spring AOP поддерживает не все функции стандарта AspectJ.Насколько я помню, Spring AOP мог обрабатывать только публичные методы bean-компонентов.Если ваши получатели находятся в аннотированном классе @Controller, @Component или @Service, он будет обработан, но, например, сущности JPA не могут быть обработаны таким образом.

...