2015-04-02 46 views
1

在我自己的多用途Java框架中,如何使用依賴注入而不依賴於具體的DI容器?也就是說,任何應用程序都應該能夠使用我的框架,而不管它是否使用CDI,Spring或Guice本身。在自己的Java框架中支持多個DI容器

下面的一切應該是可能的:

  • 我的框架,依賴注入應用
  • 爲應用程序依賴注入我的框架
  • 我的框架的一個組成部分注入依賴關係到另一個組件

回答

2

JSR 330: Dependency Injection for Java是的依賴注入社區內,結果共識最大級別的規格支持:

這使得JSR 330成爲依賴注入框架中可移植性的最佳共同標準。這顯然是以功能範圍爲代價的。

+0

謝謝Antonin,指出所有三個框架都支持JSR 330註釋。我希望,我可以評價你的答案,但我將不得不等待更高的「聲譽」。 – 2015-04-18 05:43:54

1

您將不得不爲所有需要的DI操作提供一個最低公分母接口對於您可能想要使用的每個具體實例。

您的對象中不能有任何DI引擎特定的註釋,因此您必須將所有配置外部化併爲所有對象使用setter或構造函數注入。

我個人認爲這是浪費時間。 DI應該是一種商品。我看不到切換DI引擎的好理由。更可能的是,你會選擇一個滿足你的需求並堅持下去。

+0

謝謝,duffymo。這個想法不是切換DI引擎,而是允許使用任何DI引擎的應用程序使用該框架提供的功能。 – 2015-04-18 05:46:28

+0

我的建議? 「請使用它。」你的框架不需要框架。最好遵循你的框架所要求的成語。不要包裹它或隱藏它。 – duffymo 2015-04-18 12:33:51