Как правильно создать компонент асинхронно с помощью Weld SE (CDI)? - PullRequest
0 голосов
/ 31 мая 2018

Я использую контейнер Weld SE в своем приложении JavaFX (фактически через AfterburnerFX).Компонент инициализируется (когда пользователю показано диалоговое окно), и его поля внедряются.Однако создание одной из ее зависимостей занимает много времени.

Существует ли доступная возможность для создания экземпляра компонента асинхронно непосредственно в Weld SE?Если нет, то каков общий шаблон проектирования для этого?

1 Ответ

0 голосов
/ 01 июня 2018

Если вы хотите управлять экземплярами программно, вы можете вместо этого ввести Provider для вашего компонента:

//Instead of
@Inject MyComponent comp;

// do this:
@Inject Provider<MyComponent> compProvider;

// Usage in code at any given time:
MyComponent comp = compProvider.get();

Обратите внимание, что вы, вероятно, получите альтернативу Instance вместо Provider внекоторое время в будущем (или другой ответ), который является поставщиком, реализующим расширенный интерфейс, и некоторыми другими полезными функциями.

...