Spring Boot POJOS中的Sping Boot 注解是否可以基于API/请求进行配置?

ddhy6vgd  于 2022-11-23  发布在  Spring
关注(0)|答案(2)|浏览(148)

我有两个API引用下面的POJO类。

class Data{
 private String name;  
 private String age;          
 private String address;       
 private String phone_number;
}

我需要在此POJO中注解字段,如下所示。

class Data
{
 @JsonProperty(required = true) 
 private String name;          // required field
 @JsonProperty(required = true)
 private String age;           // required field
 @JsonInclude( Include.Non_Null)
 private String address;       // optional field
 @JsonIgnore
 private String phone_number;  // ignore field
}

注解只需要应用于其中一个API。其他API不应受到此更改的影响。
实现这一点的一种方法是创建两个单独的POJO,每个API一个。但是,是否可以使用相同的POJO类来实现结果?是否有一种方法可以根据正在调用的API来配置注解?

agxfikkp

agxfikkp1#

一些重复是不错的特别是如果他们用于两个不同的目的。
理想的情况是,它们也应该在两个不同的包中,这样就不会有名称冲突。
如果你想避免,但我不建议它是有

class RequiredData extends Data {
   @JsonProperty(required = true)
   void setName(String name) {
     super.setName(name);
   }
}
ecr0jaav

ecr0jaav2#

注解只需要应用于其中一个API。其他API不应受到此更改的影响。
实现这一点的一种方法是创建两个单独的POJO,每个API一个。但是,是否可以使用相同的POJO类来实现结果?是否有一种方法可以根据正在调用的API来配置注解?
您可以创建一个库,其中包含两个API必须共享的类,并将其作为依赖项引入到两个API中。
这将允许确保系统的两个部分将具有这些域类的相同定义。

**注意:**你需要有一个强有力的理由这样做。因为有一个理由将它们实现为独立的API,并且引入这种依赖性会在它们之间创建一个耦合。如果有大量这样的类,那么作为一个结果,API将无法独立地发展。

相关问题