2010-06-15 65 views
0

我想拥有一个中央焊接容器,可容纳我所有的服务等。然而,该容器将被包含本地设置的第二个容器包装。目标是如果在外部容器中找不到依赖项,那么我想搜索内部容器。如何级联CDI依赖关系解决方案(WELD)

我该如何做到这一点?我宁愿以直接的方式做事,而不回复使用非标准的WELD扩展。

+0

纠正我,如果我错了,但你不能简单地有一个与你的服务的罐子,和一个“配置”与生产方法的罐子,服务jar插入?然后,您可以在构建时根据需要交换配置罐。没有尝试过,只是猜测。 – Drew 2010-06-25 14:18:37

+0

这种prolly不会在像OSGI这样的动态环境中工作。 Weld看起来非常静态,并且不是以编程方式很好配置的,它的所有注释都是在编译时从我可以告诉的内容中烘焙出来的。 – 2010-06-27 11:02:10

回答

0

我不认为你可以做到这一点。有一个BeanManager,通过查看是否其Context(与范围有关)包含所需的依赖关系来解决依赖关系。

+0

BeanManager不是一个标准的javax.inject类,而是一个WELD实现类。我想它是一个答案,但是再次使用内部类别永远不会好。这是令人失望的,因为我thoight谁CDI是标准化的点... – 2010-06-17 12:37:12

+0

我的意思是这是CDI如何运作(基于SPI)的方式。你不应该使用SPI接口。 – Bozho 2010-06-17 14:40:24

+0

是的,并表明缺陷。它非常静态,不提供“动态”的方式。 – 2010-06-27 11:02:40

相关问题