1)
У меня есть 3 проекта микросервисов (Country-micro, State-micro и City-micro) с 3 объектами Country, State и City в каждом микросервисе, соответственно. Обратите внимание, что все 3 микросервиса имеют одинаковый идентификатор группы в pom.xml
Все объекты имеют общие 4 поля
- ID
- created_date
- MODIFIED_DATE
- 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 в монолитной структуре таким же образом.
Пожалуйста, объясните структуру или направьте меня для определения базовых классов или утилит.
Заранее спасибо.