1. Atributos de la entidad
@Data
@Table(name = "user")
@ApiModel(value="用户表")
public class User {
private static final long serialVersionUID = 1L;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty(value = "创建人")
private String crtUser;
@ApiModelProperty(value = "创建时间")
private Date crtTime;
@ApiModelProperty(value = "修改人")
private String updUser;
@ApiModelProperty(value = "修改时间")
private Date updTime;
}
2. Obtener atributos de entidad y valores de anotación.
/**
* description 获取实体的所有字段,和对应注解值
*
* @param object 实体
* @author yanzy
* @version 1.0
* @date 2021/3/24 15:47
*/
public static Map<String, String> getFieldAnnotation(Object object) {
Field[] fields = object.getClass().getDeclaredFields();
Map<String, String> resultMap = new HashMap();
for (Field field : fields) {
// 是否引用ApiModelProperty注解
boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
if (bool) {
String value = field.getAnnotation(ApiModelProperty.class).value();
resultMap.put(field.getName(), value);
}
}
return resultMap;
}
3. Ejecute el programa, podrá ver que se han obtenido los atributos y los valores de anotación de atributos.
4. Hay muchos campos innecesarios en la entidad, como el creador, la hora de creación, etc., que deben filtrarse y optimizarse el código.
/**
* description 获取实体的所有字段,和对应注解值
*
* @param object 实体
* @param filterMap 需要过滤的字段
* @author yanzy
* @version 1.0
* @date 2021/3/24 15:47
*/
public static Map<String, String> getFieldAnnotation(Object object, Map<String, String> filterMap) {
Field[] fields = object.getClass().getDeclaredFields();
Map<String, String> resultMap = new HashMap();
for (Field field : fields) {
if (!filterMap.containsValue(field.getName())) {
// 是否引用ApiModelProperty注解
boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
if (bool) {
String value = field.getAnnotation(ApiModelProperty.class).value();
resultMap.put(field.getName(), value);
}
}
}
return resultMap;
}
5. Al ejecutar el programa para filtrar el creador y el modificador,
se pueden ver estos dos atributos, que han sido filtrados.