我想在我开发的应用中扩展CDI的使用范围。我需要的是应用程序上下文/范围,但我需要根据数据库/配置中的记录数来处理多个bean实例。
更具体地说,在我们的数据库中,有一个名为POD的表,对于该表中的每个记录,我需要一组单独的bean(服务,存储库等 - 整个对象图)。不需要动态行为 - 在此POD表中创建/删除记录时,可以重新启动应用程序。但理想情况下,在此PodContext中为特定POD定义的项应该能够在同一PodContext的上下文中注入bean。
这里显而易见的问题是如何指定应该在哪个POD中创建/注入bean实例。
这引出了一个问题,如果自定义CDI上下文实际上适合这样的用例,但没有丢失所有CDI好东西并手动构建所有对象图,我没有看到一个好的出路:(
更新:我的同事提出了一个Spring Framework的解决方案 - 我们可以拥有一个包含所有共享应用程序范围bean的父上下文,以及每个POD的一个子上下文,它将为该特定POD定义bean。它是可能的,因为Spring允许这样的上下文层次结构。 CDI中有类似的内容吗?