【发布时间】:2017-11-10 20:00:06
【问题描述】:
我有一个在请求过程中创建的对象,我希望该对象调用服务。但是,当框架调用绑定方法时,它会绑定到它自己的类实例,而不是我想要绑定的那个。
public class A {
final X x;
final Y y;
public A(Z z) {
this.x = z.x;
this.y = z.y;
}
public String doStuff() {
//do stuff
//call a service
}
}
public class B extends RestAPIServlet {
public String method(@SlingRequest SlingHttpServletRequest request, @SlingResponse SlingHttpServletResponse response) {
Z z = new ObjectMapper().readValue(request.getReader(), Z.class);
return new A(z).doStuff();
}
}
public class C extends TagSupport {
public int doStartTag() {
Z z = getZFromProperties();
String res = new A(z).doStuff();
pageContext.setAttribute("res", res);
return super.doStartTag();
}
}
有没有办法直接从 A 调用服务?在您有一个标签和一个 servlet 执行相同工作的情况下,是否有首选的代码重用模式?
我被要求不要让标签/servlet 实现一个通用接口来为 A 提供服务,也不要使用供应商来通过标签/servlet 让它访问服务。
【问题讨论】:
标签: java servlets service osgi aem