使用Weld SE(CDI)异步创建bean的正确方法是什么?

时间:2018-05-31 09:52:31

标签: java cdi weld

我在JavaFX应用程序中使用Weld SE容器(实际上是通过AfterburnerFX)。初始化组件(向用户显示对话窗口时)并注入其字段。但是,创建其中一个依赖项需要很长时间。

是否有可用的工具直接在Weld SE中实例化异步 bean?如果没有,那么处理这个问题的常见设计模式是什么?

1 个答案:

答案 0 :(得分:0)

如果要以编程方式控制实例化,可以为组件注入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,这是一个实现提供程序的扩展接口和一些更有用的函数。< / p>