【发布时间】:2012-12-21 13:08:46
【问题描述】:
假设我定义了以下类:
public interface A {}
public class A1 implements A {}
public class A2 implements A {}
public class XServlet<T extends A> extends HttpServlet {
public XServlet(T delegate){}
}
另外,在我的一个 Guice 模块中,我有愚蠢的绑定:
bind(A.class).annotatedWith(Names.named("a1")).to(A1.class);
bind(A.class).annotatedWith(Names.named("a2")).to(A2.class);
现在我需要创建一个 ServletModule,它定义了两个具有不同参数的“XServlet”实例。对于“/x”模式,我希望它使用绑定到 A.class 并用“a1”注释的任何内容,对于“/y”模式,我希望它使用任何绑定到 A.class 并用“a2”注释的内容。比如:
serve("/x").with(???);
serve("/y").with(???);
应该用什么代替'???'?有可能吗?
【问题讨论】:
标签: guice guice-servlet