开发时实体类编写时需要注意的细节,以及常用的一些注解

最近在学习做微服务的项目,总结了一些平常没有注意到的细节,记录于此

1. 实体类的字段数据类型都使用包装类型

实体类涉及到的属性如果是int这样的基本数据类型,那么要使用其包装类型,因为包装类型默认为null,而基本数据类型会有默认值,比如int的默认值为0

 public class Hello {
public static void main(String[] args) {
TestClass testClass = new TestClass();
System.out.println(testClass.a);
System.out.println(testClass.b);
}
}

class TestClass {
int a;
Integer b;
}

执行结果:

2. 字段适当使用Jackson注解

@JsonProperty

格式化属性名,在后端传回数据给前端的时候用到

比如后端某个实体类的字段名为userId,但前端需要接收的字段名为user_id,此时我们可以使用该注解,自定义后端传回的字段名

相当于在传回数据时给该属性进行了一次重命名

如图:

@JsonInclude

在后端返回给前端数据时,有些敏感数据我们不想传给前端(比如密码),于是我们会在后端把它置为null之后再将实体返回给前端,那么要怎么保证返回的json格式数据中不包含这个字段呢,此时可以使用@JsonInclude

具体用法就是在实体类的字段名直接加上该注解

@JsonInclude(JsonInclude.Include.NON_NULL)

如图:

测试:

可以看到,userId变成了user_id,password作为敏感数据没有传回

@JsonIgnoreProperties

JsonIgnoreProperties注解,可以用在类上,来告诉 Jackson 在序列化和反序列化 JSON 数据时忽略掉一些属性。
这样做的好处是,如果你的类中有一些属性在 JSON 数据中没有出现,使用这个注解就可以避免 Jackson 在序列化和反序列化时抛出异常。
比如,假设你有一个类

Person
,它包含了一个名字和一个年龄,你可以这样使用
JsonIgnoreProperties
注解:

 @JsonIgnoreProperties({"name"})
public class Person {
private String name;
private int age;

// getters and setters
}

这样,当 Jackson 序列化或反序列化

Person
类的对象时,就会忽略掉名字这个属性,不会抛出任何异常。

3. application和bootstrap两种配置文件的区别

bootstrap文件的优先级更高,一般用来定义注册中心的地址,以及服务所映射的端口

标签: Java

添加新评论