首页 > 解决方案 > 是否有任何基于静态上下文的标准 Java 依赖注入 API?

问题描述

在不依赖第三方框架的情况下,我希望有一个静态上下文类来在我的应用程序的不同包之间注入依赖项。这样,我可以避免通过多次调用将引用传递给上下文对象。

我一直在查看标准 Java API 并了解了javax.naming.Context接口及其实现javax.naming.InitialContext。这些可用于依赖注入,但上下文对象将是非静态的。

基本上,我想set引用一个包中的对象和另一个包get中的相同引用。换句话说,我会在类(或包)A中进行类似的调用:

MyContext.setInstanceOf(MyInterface.class, new MyInterfaceImpl());

以及类(或包)B中的相应调用:

MyInterface obj = (MyInterface) MyContext.getInstanceOf(MyInterface.class);

谢谢。

标签: javadependency-injection

解决方案


在 Scala 中我使用了cake 模式,我认为这在没有框架的情况下非常纯粹和容易。

由于 Java 中缺乏特征,因此不太容易将其应用于 Java,但是这个SO Question这篇博文有在 Java 8 中实现蛋糕模式的示例。

也许你试一试。


推荐阅读