首页 > 解决方案 > 如何为实体中的修剪字段制作自定义注释?

问题描述

在 Spring Boot 和 Java 8 中,有多个模型:DTOs、Entities、ViewModels 等,但需要获取并保存一个人的描述,但描述需要修剪值,例如:

    @Size(min=0, max=1024)
    private String description;

    public String getDescription() {
        return ((this.description != null) ? this.description.trim() : null);
    }

    public void setDescription(String description) {
        this.description = ((description != null) ? description.trim() : null);
    }

我做了一个自定义注释,就像@Trimmed自动化它一样:

    @Trimmed
    @Size(min=0, max=1024)
    private String description;

我尝试制作界面和方面:

修剪的.java

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Trimmed {
}

TrimmedAspect.java

@Aspect
@Component
public class TrimmedAspect {

    @Around("@annotation(Trimmed)")
    public Object requestIntercept ...

}

但是,如何制作方面?在互联网上可以找到使用函数和类声明但在获取和设置值时没有字段的示例。

怎样才能做到这一点?

标签: javaspring-boot

解决方案


我刚刚在我的组件事件中使用 AOP 制作了一个示例自定义注释,对此负责:我刚刚尝试了这段代码,也许它有帮助:它将在创建用户后执行

 @AfterReturning(value = "execution(* ypour.package..*(..))", returning = "retVal")
    public void requestIntercept(JoinPoint pjp, Object retVal) throws JsonProcessingException {

        //----- your implementation here 
            }


        }


    }

推荐阅读