请问下aop 为什么没有生效,没有执行invoke

@Slf4j
@Aspect
@Component
public class SensitiveAspect {

    @Around("@annotation(com.caroLe.manager.common.annotation.Sensitive)")
    public Object invoke(ProceedingJoinPoint point) throws Throwable {
        log.info("执行SensitiveAspect");
        Object target = point.getTarget();
        Field[] fields = target.getClass().getDeclaredFields();
        for (Field field : fields) {
            Sensitive annotation = field.getAnnotation(Sensitive.class);
            if (annotation != null) {
                Object value = field.get(target);
                DesensitizedUtil.DesensitizedType desensitizedType = annotation.type();
                String desensitized = DesensitizedUtil.desensitized(value.toString(), desensitizedType);
                field.set(target, desensitized);
            }
        }
        return target;
    }
}
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface Sensitive {

    /**
     * 脱敏数据类型
     */
    DesensitizedUtil.DesensitizedType type() default DesensitizedUtil.DesensitizedType.CHINESE_NAME;
}
        TbDriver tbDriver = new TbDriver();
        BeanUtils.copyProperties(updateDriverAuthFormVO, tbDriver);
        tbDriver.setId(updateDriverAuthFormVO.getDriverId());
        tbDriver.setRealAuth(DriverStatusEnum.REDUCE_ORDER_VOLUME.getCode());

        @Sensitive(type = DesensitizedUtil.DesensitizedType.CHINESE_NAME)
    @ApiModelProperty("姓名")
    private String name;

@Around的目标切点应该是一个方法,但这里是一个属性。
目标方法被调用时会自动执行@Around标记的这个方法(即现有代码的invoke方法),@Around标记的方法处理有@Sensitive注解的属性后,需要调用目标切点的方法,并返回该目标方法的结果

【以下回答由 GPT 生成】

问题分析: 根据提供的代码,可以看出SensitiveAspect类是一个切面类,使用@Aspect注解进行标识,用于处理带有@Sensitive注解的字段的脱敏操作。在invoke方法中,使用了Spring AOP的@Around注解来拦截目标方法,并执行脱敏操作。然后在代码中的TbDriver类中的属性上使用了@Sensitive注解。

解决方案: 1. 确保Spring容器中已经扫描到了SensitiveAspect类,并且在Spring配置中启用了@EnableAspectJAutoProxy注解来开启AOP功能。 2. 检查TbDriver类是否被Spring容器进行管理,可以通过@Component或@Bean注解来标识该类。 3. 检查TbDriver类中的属性是否被正确地标注了@Sensitive注解。

以上是我的解决方案,由于我无法获得完整的代码和环境配置,无法保证这些步骤可以解决问题。如果问题仍然存在,请提供更详细的信息以便我能够更好地帮助您解决问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^