Restlet获得申请

时间:2015-06-04 10:16:47

标签: java restlet-2.0

在Restlet 2.3中,获取Application的推荐方法是什么?

docs表明存在静态方法Application.getCurrent(),暗示可以获得执行Application。但是,这需要从执行Application

进行调用

说我有几个应用程序,它们都在运行:

public class ApplicationA extends Application {...}

public class ApplicationB extends Application {...}

是否可以从Application获取ApplicationA的{​​{1}}?

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.ComponentIntrospectororg.restlet.ext.apispark.internal.introspection.application.ComponentIntrospector

为什么在您的应用程序中需要这样的功能?只是为了给出正确答案; - )

<强>被修改

您可以在地址https://github.com/templth/restlet-stackoverflow/tree/master/restlet/test-restlet-application-manager找到用例的示例应用程序。

希望它可以帮到你, 亨利