使用CDI动态构建独立的对象树



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

我有一辆车,我想在里面注入换档和发动机
我还想在GearShift中注入Engine这辆车+换挡+发动机是我的树。

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

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

我不确定我是否正确理解您,但我认为您至少可以使用会话范围,因为您可以创建多个具有不同Id的会话。对于每个会话,您都将拥有自己的会话映射。通过这种方式,您可以管理一组单独的汽车对象。

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

最新更新