Class ConfigService

java.lang.Object
ru.gentoos.ehouse.config.ConfigService

@Component public class ConfigService extends Object
Загрузка и сравнение конфигурации (порт models/config.py:Config).

Читает YAML-файл целиком при каждом обращении (hot-reload); changed(EHouseConfig, EHouseConfig) сравнивает сериализованные представления (аналог сравнения словарей в Python). Неизвестные ключи игнорируются (pydantic extra="allow").

  • Constructor Details

    • ConfigService

      public ConfigService(@Value("${app.config-file}") String configFile)
      Parameters:
      configFile - путь к YAML-конфигу (свойство app.config-file)
  • Method Details

    • path

      public Path path()
      Абсолютный путь к файлу конфигурации.
    • load

      public EHouseConfig load()
      Загружает конфигурацию из файла.
      Returns:
      конфигурация
      Throws:
      ConfigException - если файл отсутствует или не читается
    • changed

      public boolean changed(EHouseConfig oldConfig, EHouseConfig newConfig)
      Проверяет, изменилась ли конфигурация (сравнение сериализаций).
      Parameters:
      oldConfig - старая
      newConfig - новая
      Returns:
      true, если отличаются