使用CDI

时间:2015-12-23 09:59:26

标签: cdi

我想知道如何使用CDI构建表示相同类型数据的多个独立对象树。这是一个例子:

我有一辆车,我想要注入GearShift和引擎 我还想在GearShift中注入Engine 这辆Car + GearShift + Engine是我的树。

如果我想同时拥有几辆车,那么使用CDI最好的方法是什么? 我希望能够为每棵树定义一种范围或限定符。 但是CDI范围和限定符是静态定义的,而汽车的数量是动态的。

作为一项额外要求,我想注入另一个将在汽车之间共享的依赖项。 例如,所有汽车在其整个生命周期中将共享相同的道路(找不到更有意义的其他东西) 提前致谢

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你,但我认为你至少可以使用会话范围,因为你可以用不同的ID创建几个会话。对于每个会话,您将拥有自己的会话地图。 通过这种方式,您可以管理单独的汽车对象集。

如果您使用Weld作为CDI实现,则可以使用可绑定到任何Map的BoundSessionContext。上下文在激活时自动附加到地图,并在调用invalidate()时分离。