Skip to content

示例:如何在填充后进行附加操作

本示例将指导你如何配置填充后的附加操作,在这之前,请先确保你已经阅读过快速开始,并且成功将 crane4j 引入你的项目。

有时候,我们会希望在填充后,再进行一些附加操作,这些操作光靠 crane4j 提供的数据源机制无法很好地解决。

比如,在上一个示例中,我们基于枚举填充了用户的性别字段,现在我们有了一个新的需求:

  • 如果用户的年龄小于等于 10 岁,那么用户名需要拼接上 "小朋友";
  • 如果用户的年龄大于 10 岁且小于 18 岁,那么用户名需要拼接上 "同学";
  • 如果用户的年龄大于 18 岁,那么用户名需要根据性别拼接上 "先生" 或者 "女士";

此时,你可以令你的待填充对象实现 OperationAwareBean 接口,并在对应回调方法中添加逻辑:

java
@Acccessor(chain = true)
@Data
public class Student implements OperationAwareBean {
  	private Integer age;
  	private String name;
  	private Integer genderCode;
  	private String genderName;
  
  	@Override
    public void afterOperationsCompletion() { // 该回调方法会在所有操作完成后调用
      	if (age <= 10) {
          	name = name + "小朋友";
        } else if (age <= 18) {
          	name = name + "同学";
        } else {
          	name = name + genderName;
        }
    }
}

具体内容可参见:组件的回调方法 一节。