code: public static List<BeanMappingObject> parseMapping(Class src, Class target) throws BeanMappingException {
          List<BeanMappingObject> result = new ArrayList<BeanMappingObject>(2);
          PropertyDescriptor[] targetPds = ReflectionHelper.getPropertyDescriptors(target);
          PropertyDescriptor[] srcPds = ReflectionHelper.getPropertyDescriptors(src);
          BeanMappingObject object = new BeanMappingObject();
          object.setSrcClass(src);
          object.setTargetClass(target);
          object.setBatch(true);
          BeanMappingBehavior globalBehavior = BeanMappingConfigHelper.getInstance().getGlobalBehavior();
          List<BeanMappingField> fields = new ArrayList<BeanMappingField>();
          for (PropertyDescriptor targetPd : targetPds) {
              String property = targetPd.getName();
              PropertyDescriptor srcPd = getMatchPropertyDescriptor(srcPds, property);
              if (srcPd == null) {// 没有匹配属性
                  continue;
              }
  
              if (targetPd.getWriteMethod() != null && srcPd.getReadMethod() != null) {
                  BeanMappingField field = new BeanMappingField();
                  BeanMappingFieldAttributes srcFieldAttribute = new BeanMappingFieldAttributes();
                  srcFieldAttribute.setName(property);
                  srcFieldAttribute.setClazz(srcPd.getPropertyType());
                  BeanMappingFieldAttributes targetFieldAttribute = new BeanMappingFieldAttributes();
                  targetFieldAttribute.setName(property);
                  targetFieldAttribute.setClazz(targetPd.getPropertyType());
                  // 添加记录
                  field.setSrcField(srcFieldAttribute);
                  field.setTargetField(targetFieldAttribute);
                  field.setBehavior(globalBehavior);
                  fields.add(field);
              }
  
          }
          object.setBeanFields(fields);
          object.setBehavior(globalBehavior);// 设置为global
          result.add(object);
          if (object.isReversable()) {
              BeanMappingObject reverseObject = reverse(object);
              if (reverseObject != null) {
                  result.add(reverseObject);
              }
          }
          return result;
      }
docs: 自动解析下src/target匹配的属性