Как сделать супер/базовый/родительский класс в микросервисах в весенней загрузке - расширить этот класс в дочернем классе

1) У меня есть 3 проекта микросервисов (Country-micro, State-micro и City-micro) с 3 объектами Country, State и City в каждом микросервисе, определяемом соответственно. Обратите внимание, что все 3 микросервиса имеют одинаковый идентификатор группы в pom.xml.

Все сущности имеют общие 4 поля

  1. я бы
  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;

}

Мой дочерний класс

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

Но в архитектуре микросервисов все сущности разделены. Затем, как я могу определить службу для создания суперкласса.

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);
}

В какой службе я могу определить константы, Должен ли я создать отдельную службу? или я должен определить одни и те же константы в каждом микросервисе (например, избыточный код). Я также использую класс Utility в монолитной структуре таким же образом.

Пожалуйста, объясните структуру или помогите мне определить базовые классы или Utils.

Заранее спасибо.

Когда вы говорите 3 микросервиса => вы имели в виду 3 разных проекта микросервиса или 3 разных API микросервиса в одном проекте?

MyTwoCents 31.05.2019 09:09

@MyTwoCents - я реализовал 3 разных микросервисных проекта. в pom.xml все 3 микросервиса имеют одинаковый идентификатор группы.

Chirag Shah 31.05.2019 09:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
751
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете создать один новый модуль как Common и поместить в него весь свой общий код.

Просто добавьте его зависимость в любой проект, необходимый в pom.xml.

Так что даже если вы запустите Microservice1 отдельно, вам придется привязать к нему еще и общий модуль.

например, в Microservice1pom.xml добавить общую зависимость

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

Может прочтите и это

Спасибо за быстрый ответ. У меня появилась идея построить структуру. Я также просматриваю ссылку SO stackoverflow.com/questions/35223505/…

Chirag Shah 31.05.2019 11:33

Другие вопросы по теме