Restlet 获取应用
Restlet obtaining Application
在 Restlet 2.3 中,获得 Application
的推荐方法是什么?
docs 表明有一个静态方法 Application.getCurrent()
这意味着可以获得执行 Application
是可能的。但是,这需要从执行中进行调用 Application
.
假设我有几个应用程序,它们都是 运行:
public class ApplicationA extends Application {...}
public class ApplicationB extends Application {...}
是否可以从 ApplicationB
获得 ApplicationA
的 Application
?
这取决于您配置 Restlet 的方式 "application" 但由于您是根据应用程序实例定义路由的,因此您可以将一个注入另一个,如下所述:
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 扩展做了类似的事情。请参阅 class org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
和 org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
。
为什么你的应用程序需要这样的功能?只是为了确保给出正确答案;-)
已编辑
您可以在地址 https://github.com/templth/restlet-Whosebug/tree/master/restlet/test-restlet-application-manager.
找到您的用例的示例应用程序
希望对你有帮助,
蒂埃里
在 Restlet 2.3 中,获得 Application
的推荐方法是什么?
docs 表明有一个静态方法 Application.getCurrent()
这意味着可以获得执行 Application
是可能的。但是,这需要从执行中进行调用 Application
.
假设我有几个应用程序,它们都是 运行:
public class ApplicationA extends Application {...}
public class ApplicationB extends Application {...}
是否可以从 ApplicationB
获得 ApplicationA
的 Application
?
这取决于您配置 Restlet 的方式 "application" 但由于您是根据应用程序实例定义路由的,因此您可以将一个注入另一个,如下所述:
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 扩展做了类似的事情。请参阅 class org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
和 org.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector
。
为什么你的应用程序需要这样的功能?只是为了确保给出正确答案;-)
已编辑
您可以在地址 https://github.com/templth/restlet-Whosebug/tree/master/restlet/test-restlet-application-manager.
找到您的用例的示例应用程序希望对你有帮助, 蒂埃里