Guice – 使用静态辅助方法将依赖项注入到类中

我还是Guice的新手,之前没有使用任何DI框架。 在阅读官方维基和许多其他文件后,我仍然无法完全绕过它。

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

在此先感谢您的帮助,

阿尔曼

它没有比Guice文档更清晰,但这里是一个unit testing,它显示了如何使用静态注入的示例:

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 } }