Skip to content

ЗаготовкаОсеньДата

Основной класс-конфигуратор библиотеки autumn-data, отвечающий за инициализацию источников данных, менеджеров сущностей и хранилищ в контейнере зависимостей autumn.

Назначение

Класс ЗаготовкаОсеньДата выполняет следующие функции:

  1. Инициализирует источники данных на основе конфигурации
  2. Создает менеджеры сущностей для каждого источника данных
  3. Регистрирует хранилища сущностей в контейнере зависимостей
  4. Настраивает связи между компонентами системы

Аннотации

bsl
&Заготовка

Класс помечен аннотацией &Заготовка, что означает его использование для конфигурации контейнера зависимостей в рамках autumn framework.

Конструктор

bsl
Процедура ПриСозданииОбъекта(&Деталька("data.ИсточникиДанных") НастройкиИсточниковДанных)

Параметры

НастройкиИсточниковДанных

Тип: Соответствие или Массив

Конфигурация источников данных. Может быть передана в двух форматах:

Как соответствие (один источник без имени):

bsl
Новый Соответствие()
    .Вставить("ТипКоннектора", "КоннекторSqlite")
    .Вставить("СтрокаСоединения", "Data Source=database.db")

Как массив (множественные источники):

bsl
Новый Массив()
    .Добавить(Новый Соответствие()
        .Вставить("Имя", "Основной")
        .Вставить("ТипКоннектора", "КоннекторSqlite")
        .Вставить("СтрокаСоединения", "Data Source=main.db")
    )
    .Добавить(Новый Соответствие()
        .Вставить("Имя", "Дополнительный")
        .Вставить("ТипКоннектора", "КоннекторPostgreSQL")
        .Вставить("СтрокаСоединения", "Host=localhost;Database=archive")
    )

Структура настроек источника данных

Каждый источник данных описывается соответствием со следующими ключами:

Обязательные параметры

  • ТипКоннектора - строка с именем класса коннектора (например, "КоннекторSqlite")

Опциональные параметры

  • Имя - уникальное имя источника данных (обязательно для множественных источников)
  • СтрокаСоединения - строка подключения к базе данных (по умолчанию пустая строка)
  • ПараметрыКоннектора - массив дополнительных параметров для коннектора (по умолчанию пустой массив)

Процесс инициализации

1. Инициализация источников данных

Метод ИнициализироватьИсточникиДанных() создает объекты источников данных на основе переданной конфигурации.

2. Определение типов сущностей

Система автоматически находит все пользовательские типы, содержащие методы с аннотацией &Сущность.

3. Регистрация компонентов

Для каждого источника данных регистрируются:

  • ИсточникДанных - объект источника данных
  • МенеджерСущностей - менеджер для работы с сущностями
  • ХранилищеСущностей - хранилища для каждого типа сущности

Именование компонентов в контейнере

Источники данных

  • С именем: "ИсточникДанных" + ИмяИсточника
  • Без имени: "ИсточникДанных"

Менеджеры сущностей

  • С именем: "МенеджерСущностей" + ИмяИсточника
  • Без имени: "МенеджерСущностей"

Хранилища сущностей

  • С именем источника: "ХранилищеСущностей" + ИмяИсточника + ИмяТипаСущности
  • Без имени источника: "ХранилищеСущностей" + ИмяТипаСущности

Прозвища

Дополнительно регистрируются прозвища для удобного доступа:

  • "ИсточникДанных" - для основного источника
  • "МенеджерСущностей" - для основного менеджера
  • "ХранилищеСущностей" - для основного хранилища
  • "ХранилищеСущностей" + ИмяИсточника - для хранилищ конкретного источника

Примеры использования

Простая конфигурация

bsl
// В конфигурации приложения
СоветДругогоМастера = Новый СоветДругогоМастера()
    .Деталька("data.ИсточникиДанных", Новый Соответствие()
        .Вставить("ТипКоннектора", "КоннекторSqlite")
        .Вставить("СтрокаСоединения", "Data Source=app.db")
    );

Поделка = Новый Поделка(СоветДругогоМастера);
Поделка.ЗапуститьПриложение();

// Получение компонентов
ИсточникДанных = Поделка.НайтиЖелудь("ИсточникДанных");
МенеджерСущностей = Поделка.НайтиЖелудь("МенеджерСущностей");
ХранилищеПользователей = Поделка.НайтиЖелудь("ХранилищеСущностейПользователь");

Множественные источники данных

bsl
// В конфигурации приложения
СоветДругогоМастера = Новый СоветДругогоМастера()
    .Деталька("data.ИсточникиДанных", Новый Массив()
        .Добавить(Новый Соответствие()
            .Вставить("Имя", "Основной")
            .Вставить("ТипКоннектора", "КоннекторSqlite")
            .Вставить("СтрокаСоединения", "Data Source=main.db")
        )
        .Добавить(Новый Соответствие()
            .Вставить("Имя", "Архивный")
            .Вставить("ТипКоннектора", "КоннекторPostgreSQL")
            .Вставить("СтрокаСоединения", "Host=archive.local;Database=archive")
        )
    );

Поделка = Новый Поделка(СоветДругогоМастера);
Поделка.ЗапуститьПриложение();

// Получение компонентов для разных источников
ОсновнойИсточник = Поделка.НайтиЖелудь("ИсточникДанныхОсновной");
АрхивныйИсточник = Поделка.НайтиЖелудь("ИсточникДанныхАрхивный");

ОсновнойМенеджер = Поделка.НайтиЖелудь("МенеджерСущностейОсновной");
АрхивныйМенеджер = Поделка.НайтиЖелудь("МенеджерСущностейАрхивный");

ХранилищеПользователей = Поделка.НайтиЖелудь("ХранилищеСущностейОсновнойПользователь");
ХранилищеАрхивныхДокументов = Поделка.НайтиЖелудь("ХранилищеСущностейАрхивныйДокумент");

Внутренние методы

ИнициализироватьИсточникиДанных()

Создает массив объектов ИсточникДанных на основе переданной конфигурации.

Возвращает: Массив объектов ИсточникДанных

ПолучитьИли(Соответствие, Ключ, ЗначениеПоУмолчанию)

Вспомогательный метод для извлечения значения из соответствия с возможностью указания значения по умолчанию.

Параметры:

  • Соответствие - источник данных
  • Ключ - ключ для поиска
  • ЗначениеПоУмолчанию - значение, возвращаемое если ключ не найден

Возвращает: Значение из соответствия или значение по умолчанию

ПриИнициализацииПоделки(Поделка)

Основной метод инициализации, вызываемый ОСенью, для конфигурации контейнера зависимостей.

См. также