我对 Guice 还很陌生,之前没有使用过任何 DI 框架。在阅读了官方 wiki 和许多其他文档后,我仍然无法完全理解它。
在我的特定情况下,我想编写一个使用其他(待注入)类的 EL taglib 函数。由于所有 taglib 函数都必须声明为静态,因此我不能仅通过构造函数或设置器 @Inject 我的依赖项。我想到使用 requestStaticInjection() 中描述的方法http://code.google.com/p/google-guice/wiki/Injections#Static_Injections http://code.google.com/p/google-guice/wiki/Injections#Static_Injections但我无法让它工作,也找不到任何好的教程。
预先感谢您的任何帮助,
Arman
它并没有比 Guice 文档更清晰,但这里有一个单元测试,展示了如何使用静态注入的示例:
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
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)