如何让 Aspect 对 Pojo 中的所有吸气剂起作用
How to get Aspect working on all getters in Pojo
我的目标是使用 Aspect 和 Spring AOP 对 Pojo 中的所有 getter 进行一些更新。我想做一些像 "haha" + Str 当我做 getter.
这是我的看点:
@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;
}
我无法触发切入点,如果有人能帮忙,我将不胜感激。
Spring AOP 不支持 AspectJ 标准的所有功能。我记得只有 Spring 个 bean 的 public 个方法可以由 Spring AOP 处理。如果您的吸气剂在 @Controller
、@Component
或 @Service
注释 class 中,它将被处理,但例如 JPA 实体不能以这种方式处理。
我的目标是使用 Aspect 和 Spring AOP 对 Pojo 中的所有 getter 进行一些更新。我想做一些像 "haha" + Str 当我做 getter.
这是我的看点:
@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;
}
我无法触发切入点,如果有人能帮忙,我将不胜感激。
Spring AOP 不支持 AspectJ 标准的所有功能。我记得只有 Spring 个 bean 的 public 个方法可以由 Spring AOP 处理。如果您的吸气剂在 @Controller
、@Component
或 @Service
注释 class 中,它将被处理,但例如 JPA 实体不能以这种方式处理。