在Restlet 2.3中,获取Application
的推荐方法是什么?
docs表明存在静态方法Application.getCurrent()
,暗示可以获得执行Application
。但是,这需要从执行Application
。
说我有几个应用程序,它们都在运行:
public class ApplicationA extends Application {...}
public class ApplicationB extends Application {...}
是否可以从Application
获取ApplicationA
的{{1}}?
答案 0 :(得分:0)
这取决于您配置Restlet"应用程序"的方式。但是,由于您根据应用程序实例定义了路由,因此可以将其中一个注入其他实例,如下所述:
Component c = new Component();
(...)
MyApplication1 app1 = new MyApplication1();
c.getDefaultHost().attach("/app1", app1);
MyApplication1 app2 = new MyApplication2(app1);
c.getDefaultHost().attach("/app1", app2);
(...)
您可以注意到,您还可以在运行时内省您的应用程序。 Restlet的APISpark扩展做了类似的事情。请参阅课程org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
和org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
。
为什么在您的应用程序中需要这样的功能?只是为了给出正确答案; - )
<强>被修改强>
您可以在地址https://github.com/templth/restlet-stackoverflow/tree/master/restlet/test-restlet-application-manager找到用例的示例应用程序。
希望它可以帮到你, 亨利