在Restlet应用程序中放置(启动)初始化代码的最合适位置是什么?

时间:2012-03-13 07:32:19

标签: initialization startup restlet restlet-2.0

在哪里可以在不使用ServletContextListener的情况下将启动初始化代码嵌入到Restlet Web应用程序中?

我希望将我的Restlet透明地部署到像JBoss / Tomcat这样的Web服务器上,并希望摆脱监听器中的初始化逻辑 - 以便能够方便地将其部署在Web服务器之外,如果需要 - 绝对不是为了大量生产使用,但它仍然很有价值。

将它插入org.restlet.Component的构造函数是否确保它只执行一次?这是正确的地方吗?

public class MyComponent extends org.restlet.Component
{
  public MyComponent() //constructor
  {
    //insert initialization code here that should run ONLY ONCE?

    this.getDefaultHost().attach(new MyApplication()); // MyApplication extends org.restlet.Application
  }
}

我浏览了文档并查看了类似帖子:RESTlet startup initialization deprecated?但我仍然不确定这是不是正确的方法。如果可能的话,我想删除对Listener的依赖。

1 个答案:

答案 0 :(得分:1)

使用Component的构造函数是初始化处理的好地方,你可以确定这样的处理只执行一次。

您可以注意到组件的方法启动/停止也可以在您的情况下使用。别忘了在它们中调用super方法。当您启动/停止通常只执行一次的组件时,会调用这些方法...

希望它对你有所帮助。 亨利