Skip to content

操作执行器

huangchengxing edited this page Feb 15, 2023 · 1 revision

操作执行器

操作执行器 BeanOperationExecutor 是完成填充操作的核心组件,它决定了以何种方式使用对应处理器完成填充和装配操作,一般配合自动填充或者 OperateTemplate 使用。

操作执行器默认提供了三种实现,用户可以根据需求自己取舍:

  • AsyncBeanOperationExecutor:异步操作执行器,默认不注册到 Spring 容器,需要用户自己注册;
  • DisorderedBeanOperationExecutor:同步无序操作执行器,默认的操作执行器;
  • OrderedBeanOperationExecutor:同步有序操作执行器,支持按顺序完成装配操作,但是相对无序执行器性能会有所影响;

当手动填充时,可通过 OperateTemplate 的指定重载方法设置本次填充操作使用的操作执行器:

// 从 spring 上下文中获取 OperateTemplate 和 DisorderedBeanOperationExecutor
OperateTemplate operateTemplate = SpringUtil.get(OperateTemplate.class); 
OperateTemplate executor = SpringUtil.get(DisorderedBeanOperationExecutor.class);
operateTemplate.execute(fooList, executor, op -> true);

当自动填充时,可以在 @AutoOperate 注解指操作执行器:

// 填充返回值
@AutoOperate(type = Foo.class, executor = DisorderedBeanOperationExecutor.class)
public List<Foo> getFooList() {
    // do nothing
}

// 填充参数
@ArgAutoOperate(
    @AutoOperate(value = "foos", type = Foo.class, executor = DisorderedBeanOperationExecutor.class)
)
public void setFooList(List<Foo> foos) {
    // do nothing
}
Clone this wiki locally