【7.1.6】【scanner】资源扫描增加对参数字段名的读取

pull/26/head
fengshuonan 2022-01-24 15:20:16 +08:00
parent bc352d374a
commit ae24582306
5 changed files with 43 additions and 2 deletions

View File

@ -31,6 +31,11 @@ public class MetadataContext {
*/
public static ConcurrentHashMap<String, ParamTypeEnum> META_DATA_PARAM_TYPE_CONTEXT = new ConcurrentHashMap<>();
/**
* keyidkeycontext
*/
public static ConcurrentHashMap<String, String> META_DATA_PARAM_NAME_CONTEXT = new ConcurrentHashMap<>();
/**
*
*
@ -114,6 +119,27 @@ public class MetadataContext {
return META_DATA_PARAM_TYPE_CONTEXT.get(uuid);
}
/**
*
*
* @author fengshuonan
* @date 2022/1/24 15:09
*/
public static void addParameterName(String uuid, String paramName) {
META_DATA_PARAM_NAME_CONTEXT.put(uuid, paramName);
}
/**
*
*
* @author fengshuonan
* @date 2022/1/24 15:09
*/
public static String getParamName(String uuid) {
return META_DATA_PARAM_NAME_CONTEXT.get(uuid);
}
/**
*
*
@ -123,6 +149,7 @@ public class MetadataContext {
public static void cleanContext() {
META_DATA_CLASS_COUNT_CONTEXT.clear();
META_DATA_PARAM_TYPE_CONTEXT.clear();
META_DATA_PARAM_NAME_CONTEXT.clear();
}
/**
@ -137,6 +164,7 @@ public class MetadataContext {
}
META_DATA_CLASS_COUNT_CONTEXT.remove(uuid);
META_DATA_PARAM_TYPE_CONTEXT.remove(uuid);
META_DATA_PARAM_NAME_CONTEXT.remove(uuid);
}
}

View File

@ -54,4 +54,9 @@ public class ParameterMetadata {
*/
private Type parameterizedType;
/**
* getString userAccountuserAccount
*/
private String parameterName;
}

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.scanner.api.util;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.scanner.api.context.MetadataContext;
import cn.stylefeng.roses.kernel.scanner.api.enums.FieldMetadataTypeEnum;
import cn.stylefeng.roses.kernel.scanner.api.enums.FieldTypeEnum;
@ -33,8 +34,11 @@ public class ClassDescriptionUtil {
fieldMetadataItem.setFieldClassType(clazz.getSimpleName());
// 设置类的全路径
fieldMetadataItem.setFieldClassPath(clazz.getName());
// 设置对应字段名称,无字段名称则填写类的简称
fieldMetadataItem.setFieldName(null);
// 根据uuid获取参数的名称
String paramName = MetadataContext.getParamName(uuid);
if (StrUtil.isNotBlank(paramName)) {
fieldMetadataItem.setFieldName(paramName);
}
// 设置是否带泛型
fieldMetadataItem.setGenericFieldMetadataType(FieldMetadataTypeEnum.FIELD.getCode());
// 设置字段类型基本、数组、还是object

View File

@ -190,6 +190,9 @@ public class MethodReflectUtil {
// 设置参数是param参数还是request body参数
parameterMetadata.setParamTypeEnum(getParamTypeEnum(annotations));
// 设置参数名
parameterMetadata.setParameterName(parameter.getName());
result.add(parameterMetadata);
}

View File

@ -310,6 +310,7 @@ public class ApiResourceScanner implements BeanPostProcessor {
String parameterContextUuid = RandomUtil.randomString(32);
// 将当前参数的类型加到context中后边会用到
MetadataContext.addParamTypeMetadata(parameterContextUuid, parameterMetadata.getParamTypeEnum());
MetadataContext.addParameterName(parameterContextUuid, parameterMetadata.getParameterName());
fieldMetadataLinkedHashSet.add(ClassMetadataFactory.beginCreateFieldMetadata(parameterMetadata.getParameterizedType(), parameterContextUuid));
MetadataContext.cleanContext(parameterContextUuid);
}