gpt4 book ai didi

java - 如何在 spring-boot 中的微服务中创建 Super/Base/Parent 类 - 在子类中扩展该类

转载 作者:行者123 更新时间:2023-12-02 09:49:58 25 4
gpt4 key购买 nike

1)我有 3 个微服务项目(国家微、州微和城市微),每个微服务中分别定义了 3 个实体国家、州和城市。请注意,所有 3 个微服务在 pom.xml 中具有相同的组 ID

所有实体都有共同的4个字段

  1. ID
  2. 创建日期
  3. 修改日期
  4. is_active

如何为上述字段创建基本实体类并在不同的微服务中使用它。就像,在整体架构中,我们可以通过扩展此处定义的类来轻松使用:

我的基类

@MappedSuperclass
@Data
public class BaseEntity {
private Long id;
private Date created_date;
private Date modified_date;
private Boolean is_active;

}

我的 child 类(class)

@Entity
@Data
@EqualsAndHashCode(callSuper=false)
@Table(name="tbl_country")
public class Country extends BaseEntity {
private String countryName;
private String countryCode;
}

但是,在微服务架构中,所有实体都是分离的。那么,我如何定义服务作为 super 类。

2) 对于上面同样的问题,我也想在每个微服务中使用我的常量类。就像,在整体结构中,我们可以:

public interface Constants {
static String HTTP = "http";
static String COMMA_AND_SPACE = ", ";
}

并且可以在任何类中使用此常量,例如:

public String myMethod(MyDto myDto) {
StringBuilder sb = new StringBuilder();

sb.append("My First String").append(Constants.COMMA_AND_SPACE);
sb.append("My Second String").append(Constants.COMMA_AND_SPACE);
}

我可以在哪个服务中定义常量,我应该创建单独的服务吗?或者我必须在每个微服务中定义相同的常量(例如代码冗余)。我也以同样的方式在整体结构中使用实用程序类。

请解释结构或指导我定义基类或实用程序。

提前谢谢您。

最佳答案

您可以创建一个新模块作为 Common 并将所有常用代码放入其中。

只需将其依赖项添加到 pom.xml 中所需的任何项目中即可。

因此,即使您单独运行 Microservice1,您也必须在其中绑定(bind) Common 模块。

例如在Microservice1 pom.xml中添加公共(public)依赖项

<dependency>
<groupId>com.sample.common</groupId>
<artifactId>Common</artifactId>
<version>${project.version}</version>
</dependency>

可以read this as well

关于java - 如何在 spring-boot 中的微服务中创建 Super/Base/Parent 类 - 在子类中扩展该类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56390237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com