Это довольно упрощенный пример моего кода в Spring Boot и MySQL в этом примере. (Обычно эти классы создаются на отдельной фабрике)
@Entity
@Table(name = "countries")
public class Country {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
ArrayList<Division> divisions;
public Country() {
divisions.add(new Division(divisions.size() + 1));
}
}
@Entity
@Table(name = "divisions")
public class Division {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
int division;
final int MAX_NUMBER_OF_LEAGUES_IN_DIV = (int) Math.pow(2, division - 1);
ArrayList<League> leagues;
public Division(int division) {
this.division = division;
leagues.add(new League(leagues.size() + 1));
}
}
@Entity
@Table(name = "leagues")
public class League {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
int leagueNumber;
ArrayList<Team> teams;
public League(int leagueNumber) {
this.id = id;
this.leagueNumber = leagueNumber;
for(int i = 0; i < 10; i++) {
teams.add(new Team(teams.size() + 1));
}
}
}
@Entity
@Table(name = "teams")
public class Team {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
ArrayList<Player> players;
public Team() {
for(int i = 0; i < 5; i++) {
players.add(...);
}
}
}
В последнее время я много читал о микросервисах, но не знаю, как я могу их использовать. Можно ли использовать для этих элементов микросервисы? Нужно ли делать микросервисы из каждого класса? Но как я могу их контролировать?
- Например, каждая команда будет иметь 1 менеджера, который подключается к команде, у которой еще нет менеджера, когда новый менеджер регистрируется.
- Когда нет команд без менеджера, новая лига должна быть создана с другими X командами
- А когда в дивизионе максимальное количество лиг, новый дивизион должен быть создан с новой лигой и такими командами, как :
- Дивизион 1: 1 Лига
- Дивизион 2: 2 лиги
- Дивизион 3: 4 лиги
- Дивизион 4: 8 лиг и т. Д.
Итак, в «нормальном» приложении я вижу, как это может работать, но возможно ли что-то подобное реализовать с помощью микросервисов?