Skip to content

Справочник аннотаций autumn-killjoy-flavour

autumn-killjoy-flavour — это набор «душных» (серьёзных) псевдонимов аннотаций фреймворка autumn. Каждая аннотация из этой библиотеки полностью эквивалентна соответствующей аннотации autumn и отличается только названием — без желудей, дубов и прочих радостей.

Примечание. Описания в этом справочнике приведены для удобства и могут отставать от оригинала. Актуальную и наиболее полную документацию по поведению аннотаций всегда смотрите в фреймворке autumn.

Таблица соответствий

Душная аннотацияАннотация autumnОписание
&Компонент&ЖелудьПомечает класс как компонент
&Прототип&Характер("Компанейский")Прототипный жизненный цикл компонента
&Приоритетный&ВерховныйПриоритет при конфликте имён
&Конфигурация&ДубФабрика компонентов
&ФабричныйМетод&ЗавязьМетод, создающий компонент
&ИнициализаторПриложения&ЗаготовкаДействия при помещении класса в контекст
&ОбработчикКомпонента&НапильникОбработка компонентов при создании
&ОбработчикОпределенияКомпонента&ПриемкаОбработка определений компонентов
&ФазаПриложения&СпецификацияФаза жизненного цикла приложения
&ПравилаОбработки&ОсобоеОбращениеУправление применением обработчиков
&Квалификатор&ПрозвищеДополнительный идентификатор компонента
&ЗапускательПриложения&РогаткаАвтозапуск при старте приложения
&ЗначениеНастройки&ДеталькаВнедрение настройки приложения
&ПроизвольныйПараметр&БлестяшкаВнедрение произвольного значения
&Внедряемое&ПластилинВнедрение компонента
&Контейнер&ТабакеркаОтложенное внедрение через контейнер
&ПослеИнициализацииКомпонента&ФинальныйШтрихДействия после инициализации компонента

Использование

bsl
#Использовать autumn
#Использовать autumn-killjoy-flavour

// теперь вам доступны серьезные аннотации (и щи)

&Внедряемое

Псевдоним аннотации &Пластилин фреймворка autumn.

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

Может быть использована над параметром конструктора/фабричного метода компонента, полем класса или методом установки значения.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя внедряемого компонента. Если не заполнено, используется имя параметра конструктора/поля класса или часть имени метода для установки значения.
ТипСтрокаТип внедряемого компонента. В случае передачи значения "Желудь" будет внедрён компонент как таковой. Также может быть указан тип-коллекция: "Массив", "ТаблицаЗначений" и другие. Полный список доступных типов см. в библиотеке autumn-collections.
ПроизвольныйПараметрПроизвольныйПовторяемый параметр. Передаваемые во внедряемый компонент произвольные значения.

Пример

bsl
&Компонент
Процедура ПриСозданииОбъекта(&Внедряемое ДругойКомпонент)
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Пластилин. Актуальную документацию см. в autumn.


&ЗапускательПриложения

Псевдоним аннотации &Рогатка фреймворка autumn.

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

Компонент, помеченный данной аннотацией, должен реализовать следующий интерфейс:

  • Процедура ПриЗапускеПриложения() Экспорт

Каждый запускатель приложения дополнительно имеет квалификатор "Рогатка".

Запускатель приложения сам по себе тоже является компонентом, то есть может запрашивать внедрение зависимостей, является объектом для обработки обработчиками компонентов, может иметь фазу приложения и так далее.

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента, под которым запускатель добавляется в контекст приложения.
ЗапускатьВФонеБулевоЕсли Истина, то запускатель будет запущен в фоновом задании. Если Ложь, то запускатель будет запущен в текущем потоке.
ОжидатьЗавершенияБулевоЕсли Истина и ЗапускатьВФоне = Истина, то после запуска будет ожидаться его завершение.

Пример

bsl
&ЗапускательПриложения
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Рогатка. Актуальную документацию см. в autumn.


&ЗначениеНастройки

Псевдоним аннотации &Деталька фреймворка autumn.

Маркерная аннотация для указания, что внедряемая зависимость является настройкой приложения.

Может быть использована над параметром конструктора/фабричного метода компонента, полем класса или методом установки значения.

Параметры

ПараметрТипОписание
ЗначениеСтрокаКлюч настройки. См. библиотеку configor для полного описания синтаксиса. Если не заполнено, используется имя параметра конструктора/поля класса или часть имени метода для установки значения.
ЗначениеПоУмолчаниюПроизвольныйЗначение, которое принимает настройка, если не задана извне.

Пример

bsl
&ЗначениеНастройки
Перем ПутьКФайлу;

&ЗначениеНастройки(Значение = "Настройки.ПутьКФайлу", ЗначениеПоУмолчанию = "./file.txt")
Перем ДругойПуть;

Примечание. Данная аннотация — «душный» псевдоним аннотации &Деталька. Актуальную документацию см. в autumn.


&ИнициализаторПриложения

Псевдоним аннотации &Заготовка фреймворка autumn.

Специальный тип компонента для выполнения дополнительных действий в момент помещения класса в контекст приложения.

Может использоваться для добавления динамической загрузки новых классов в систему типов OneScript или дополнительных импортов библиотек через директиву #Использовать.

Каждый инициализатор приложения дополнительно имеет квалификатор "Заготовка" и фазу приложения "Инициализация".

Компонент, помеченный данной аннотацией, должен реализовать следующий интерфейс:

  • Процедура ПриИнициализацииПоделки(Поделка) Экспорт

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента, под которым инициализатор добавляется в контекст приложения.

Пример

bsl
&ИнициализаторПриложения
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Заготовка. Актуальную документацию см. в autumn.


&Квалификатор

Псевдоним аннотации &Прозвище фреймворка autumn.

Добавляет к компоненту дополнительный идентификатор, по которому его можно впоследствии получить из контейнера. Компонент может иметь несколько квалификаторов. Один и тот же квалификатор может использоваться для нескольких компонентов.

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

Размещается над конструктором класса или над фабричным методом.

Параметры

ПараметрТипОписание
ЗначениеСтрокаЗадаваемый квалификатор.

Пример

bsl
&Квалификатор("ПодписчикНаСобытие")
&Квалификатор("ПользовательскийКомпонент")
&Компонент("МойКомпонент")
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Прозвище. Актуальную документацию см. в autumn.


&Компонент

Псевдоним аннотации &Желудь фреймворка autumn.

Помечает указанный класс как компонент, жизненным циклом которого управляет фреймворк.

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента. По умолчанию будет использовано имя типа объекта, как оно возвращается функцией ТипЗнч.

Пример

bsl
&Компонент
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Желудь. Актуальную документацию см. в autumn.


&Контейнер

Псевдоним аннотации &Табакерка фреймворка autumn.

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

Может использоваться для внедрения прототипов, внедрения компонента самого в себя, для разрыва циклических зависимостей, для передачи дополнительных параметров внедряемого компонента и т.п.

Используется совместно с аннотациями &Внедряемое и &ЗначениеНастройки.

Параметры

Аннотация не имеет параметров.

Пример

bsl
&Контейнер
&Внедряемое("ДругойКомпонент")
Перем КонтейнерСДругимКомпонентом;

// ...
ДругойКомпонент = КонтейнерСДругимКомпонентом.Достать();
ДругойКомпонент.КакойТоМетод();

Примечание. Данная аннотация — «душный» псевдоним аннотации &Табакерка. Актуальную документацию см. в autumn.


&Конфигурация

Псевдоним аннотации &Дуб фреймворка autumn.

Помечает указанный класс как фабрику компонентов — конфигурацию, поставляющую компоненты. Конфигурация сама по себе тоже является компонентом, то есть может запрашивать внедрение зависимостей, является объектом для обработки обработчиками компонентов, может иметь фазу приложения и так далее.

Конфигурация обычно содержит методы, помеченные аннотацией &ФабричныйМетод, которые возвращают компоненты, но может содержать и другие методы, не связанные непосредственно с созданием компонентов.

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента. По умолчанию будет использовано имя типа объекта, как оно возвращается функцией ТипЗнч.

Пример

bsl
&Конфигурация
Процедура ПриСозданииОбъекта()
КонецПроцедуры

&ФабричныйМетод
Функция ПользовательскийКомпонент() Экспорт
    Возврат Новый ПользовательскийКомпонент();
КонецФункции

Примечание. Данная аннотация — «душный» псевдоним аннотации &Дуб. Актуальную документацию см. в autumn.


&ОбработчикКомпонента

Псевдоним аннотации &Напильник фреймворка autumn.

Специальный тип компонента для дополнительной обработки других компонентов в процессе их создания.

Каждый обработчик компонента дополнительно имеет квалификатор "Напильник".

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента, под которым обработчик добавляется в контекст приложения.
ПрименяетсяТолькоНаСтрокаПовторяемый параметр. Ограничивает применение обработчика только компонентами с указанным квалификатором.

Пример

bsl
&ОбработчикКомпонента
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Напильник. Актуальную документацию см. в autumn.


&ОбработчикОпределенияКомпонента

Псевдоним аннотации &Приемка фреймворка autumn.

Специальный тип компонента для обработки определений компонентов.

Аналог обработчика компонента для определения компонента. Срабатывает каждый раз, когда в контекст добавляется новое определение компонента. При добавлении самого обработчика в контекст все ранее добавленные определения компонентов передаются в него для проверки.

Класс, помеченный данной аннотацией, должен реализовать следующий интерфейс:

  • Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт

Каждый обработчик определения компонента дополнительно является прототипом, имеет квалификатор "Приемка" и фазу приложения "Инициализация".

Размещается над конструктором класса.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя компонента, под которым обработчик добавляется в контекст приложения.

Пример

bsl
&ОбработчикОпределенияКомпонента
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Приемка. Актуальную документацию см. в autumn.


&ПослеИнициализацииКомпонента

Псевдоним аннотации &ФинальныйШтрих фреймворка autumn.

Процедуры, помеченные данной аннотацией, будут вызваны в конце инициализации компонента, после отработки конструктора/фабричного метода и всех обработчиков, применяемых на компоненте. Во время выполнения процедуры доступны все внедряемые зависимости, внедрённые как через конструктор, так и через поля класса и методы-сеттеры.

Компонент может содержать несколько процедур, помеченных данной аннотацией. Порядок их вызова не гарантируется.

Процедура должна быть помечена как Экспорт.

Параметры

Аннотация не имеет параметров.

Пример

bsl
&ПослеИнициализацииКомпонента
Процедура ПостИнициализация() Экспорт
    Сообщить("Я выполнилась после конструктора объекта");
КонецПроцедуры

&Компонент
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &ФинальныйШтрих. Актуальную документацию см. в autumn.


&ПравилаОбработки

Псевдоним аннотации &ОсобоеОбращение фреймворка autumn.

Маркерная аннотация, показывающая, что компонент требует изменений в процессе своего создания.

Параметры аннотации конфликтуют между собой. Если отключаются все обработчики, то нельзя задавать ограничения на применение конкретных обработчиков или отключение конкретных обработчиков. Если задано ограничение на применение только конкретных обработчиков, то нельзя задавать ограничение на отключение конкретных обработчиков (и наоборот).

Размещается над конструктором класса или над фабричным методом.

Параметры

ПараметрТипОписание
ОтключитьВсеОбработчикиБулевоНе применять на компоненте никакие обработчики.
ПрименятьТолькоОбработчикСтрокаПовторяемый параметр. Применять на компоненте только обработчик с указанным именем.
НеПрименятьОбработчикСтрокаПовторяемый параметр. Не применять на компоненте обработчик с указанным именем.

Пример

bsl
&ПравилаОбработки(ОтключитьВсеОбработчики = Истина)
&Компонент
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &ОсобоеОбращение. Актуальную документацию см. в autumn.


&Приоритетный

Псевдоним аннотации &Верховный фреймворка autumn.

Помечает компонент как имеющий приоритет среди других компонентов с таким же именем или квалификатором. В случае конфликта имён при получении компонентов или их регистрации будет использован компонент с аннотацией &Приоритетный.

При наличии нескольких компонентов с одним и тем же квалификатором позволяет определить, какой из них следует возвращать при поиске конкретного компонента по его квалификатору.

Если несколько компонентов с одним и тем же именем/квалификатором имеют аннотацию &Приоритетный, будет вызвано исключение.

Размещается над определением компонента — конструктором или фабричным методом.

Параметры

Аннотация не имеет параметров.

Пример

bsl
&Приоритетный
&Компонент("ПереопределяемыйКомпонент")
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Верховный. Актуальную документацию см. в autumn.


&ПроизвольныйПараметр

Псевдоним аннотации &Блестяшка фреймворка autumn.

Маркерная аннотация для указания, что внедряемая зависимость является произвольным значением, передаваемым в конструктор компонента.

Может быть использована только над параметром конструктора/фабричного метода компонента.

Параметры

Аннотация не имеет параметров.

Пример

bsl
&Компонент
Процедура ПриСозданииОбъекта(&ПроизвольныйПараметр ПроизвольноеЗначение)
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Блестяшка. Актуальную документацию см. в autumn.


&Прототип

Псевдоним аннотации &Характер("Компанейский") фреймворка autumn.

Задаёт компоненту прототипный способ управления жизненным циклом.

По умолчанию все компоненты являются одиночками: компонент инициализируется один раз, и при каждом запросе возвращается один и тот же экземпляр. Компонент, помеченный как прототип, создаётся заново при каждом запросе.

Размещается над конструктором класса или над фабричным методом.

Параметры

Аннотация не имеет параметров.

Пример

bsl
&Прототип
&Компонент
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Характер("Компанейский"). Актуальную документацию см. в autumn.


&ФабричныйМетод

Псевдоним аннотации &Завязь фреймворка autumn.

Помечает функцию как функцию, создающую компонент.

Может иметь параметры, каждый из которых должен быть промаркирован как &Внедряемое, &ЗначениеНастройки или &ПроизвольныйПараметр. В указанные параметры автоматически будут внедрены соответствующие зависимости при создании компонента.

Может размещаться над экспортной функцией в классе, проаннотированном как &Конфигурация.

Параметры

ПараметрТипОписание
ЗначениеСтрокаИмя создаваемого компонента. По умолчанию будет использовано имя метода.
ТипСтрокаТип создаваемого компонента. Требуется, если по имени компонента не получается однозначно определить его тип.

Пример

bsl
&ФабричныйМетод
Функция ПользовательскийКомпонент(&Внедряемое Зависимость, &ЗначениеНастройки ВажнаяНастройка) Экспорт
    Возврат Новый ПользовательскийКомпонент(Зависимость, ВажнаяНастройка);
КонецФункции

Примечание. Данная аннотация — «душный» псевдоним аннотации &Завязь. Актуальную документацию см. в autumn.


&ФазаПриложения

Псевдоним аннотации &Спецификация фреймворка autumn.

Аннотация для указания жизненного цикла приложения, начиная с которого разрешено создавать компонент.

По умолчанию все компоненты имеют фазу "Выполнение", означающую, что компонент может быть создан только после запуска приложения.

К компонентам с фазой "Инициализация" не применяются обработчики компонентов.

Размещается над конструктором класса или над фабричным методом.

Параметры

ПараметрТипОписание
ЗначениеСтрокаСостояние приложения, на котором разрешено создавать компонент.

Пример

bsl
&ФазаПриложения("Инициализация")
&Компонент
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Примечание. Данная аннотация — «душный» псевдоним аннотации &Спецификация. Актуальную документацию см. в autumn.