2010-06-15 68 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

相關問題