code: private static BatchExecutor getGetBatchExecutor(BeanMappingParam param, BeanMappingObject config) {
          BatchExecutor executor = config.getGetBatchExecutor();
          if (executor != null) { // 如果已经生成，则直接返回
              return executor;
          }
  
          if (canBatch(config.getBehavior()) == false) {
              config.setBatch(false);
              return null;
          }
  
          List<String> srcFields = new ArrayList<String>();
          List<Class> srcArgs = new ArrayList<Class>();
          // 处理src操作数据搜集
          Class locatorClass = param.getSrcRef().getClass();
          for (BeanMappingField beanField : config.getBeanFields()) {
              String srcField = beanField.getSrcField().getName();
              Class srcArg = beanField.getSrcField().getClazz();
              if (StringUtils.isEmpty(srcField) || srcArg == null) {
                  return null; // 直接不予处理
              }
  
              Class selfLocatorClass = beanField.getSrcField().getLocatorClass();
              if (selfLocatorClass != null && selfLocatorClass != locatorClass) {
                  config.setBatch(false);// 直接改写为false，发现locatorClass存在于不同的class
              }
  
              if (canBatch(beanField.getBehavior()) == false) {
                  config.setBatch(false);
                  return null;
              }
  
              GetExecutor get = beanField.getGetExecutor();// 只针对property进行batch优化
              if (get != null && (get instanceof FastPropertyGetExecutor || get instanceof PropertyGetExecutor) == false) {
                  config.setBatch(false);
                  return null;
              }
  
              // 搜集信息
              srcFields.add(srcField);
              srcArgs.add(srcArg);
          }
          // 生成下src批量处理器
          executor = Uberspector.getInstance().getBatchExecutor(locatorClass,
                                                                srcFields.toArray(new String[srcFields.size()]),
                                                                srcArgs.toArray(new Class[srcArgs.size()]));
          if (config.getBehavior().isDebug() && logger.isDebugEnabled()) {
              logger.debug("SrcClass[" + param.getSrcRef().getClass() + "]GetBatchExecutor is init");
          }
          config.setGetBatchExecutor(executor);
          return executor;
      }
docs: 获取get操作的BatchExecutor