java - Guice - 使用静态辅助方法将依赖项注入(inject)类

标签 java el guice static-methods taglib

我对 Guice 还是个新手,之前没有使用过任何 DI 框架。在阅读了官方 wiki 和许多其他文档后,我仍然无法完全理解它。

在我的特殊情况下,我想编写一个使用其他(待注入(inject))类的 EL taglib 函数。由于所有 taglib 函数都必须声明为静态的,所以我不能仅通过构造函数或 setter @Inject 我的依赖项。我想到了使用 http://code.google.com/p/google-guice/wiki/Injections#Static_Injections 中描述的 requestStaticInjection() 方法但我无法让它工作,也找不到任何好的教程。

在此先感谢您的帮助,

阿曼

最佳答案

没有比 Guice 文档更清楚的了,但这里有一个单元测试,展示了如何使用静态注入(inject)的示例:

public class StaticInjectionExample {

  static class SomeClass {}

  static class TagLib{
    @Inject
    static SomeClass injected;

    public static void taglibFunction(String foo) {
      injected.something(foo);
    }

  }

  static class TestModule extends AbstractModule {
    @Override
    protected void configure() {
      requestStaticInjection(TabLib.class);
    }
  }

  @Test
  public void test() {
    Injector injector = Guice.createInjector(new TestModule());
    TagLib receiver = injector.getInstance(TagLib.class);
    // Do something with receiver.injected
  }
}

关于java - Guice - 使用静态辅助方法将依赖项注入(inject)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454790/

相关文章:

java - 如何将类名传递给抽象父类(super class)构造函数?

java - 银行账户计划、余额变更

java - 用于第三方 servelet 的 Guice Singleton Servlet Binding 解决方法

java - Guice/CDI/JEE6 为什么instance.select(qualifiers)使用实例而不是MyQualifier.class的Annotation?

eclipse - 使用 Guice/Peaberry 进行 osgi 声明性服务

java - 如何使用 Java 和 Twitter API 获取给定 Twitter ID 发送的推文?

java - apache poi - 找到条件后继续循环

java - jSTL 条件不起作用

jsp - 找不到 EL RI 表达式工厂

jsp - 避免 JSTL c :set statement 中的空格