public Object process(Object value, ValueProcessInvocation invocation) throws BeanMappingException {
        BeanMappingField field = invocation.getContext().getCurrentField();
        BeanMappingBehavior behavior = field.getBehavior(); // 每个属性mapping都会有一个behavior，允许覆盖上层

        // 判断一下value的null 情况
        if (value == null && behavior.isMappingNullValue() == false) {
            return value;
        }

        // 进行trim处理
        if (value instanceof String && behavior.isTrimStrings()) {
            value = StringUtils.trim((String) value);
        }

        // 判断一下String的null / empty情况
        if ((value == null || (value instanceof String && StringUtils.isEmpty((String) value)))
            && behavior.isMappingEmptyStrings() == false) {
            return value;
        }

        return invocation.proceed(value);
    }