在哪里可以在不使用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的依赖。
答案 0 :(得分:1)
使用Component的构造函数是初始化处理的好地方,你可以确定这样的处理只执行一次。
您可以注意到组件的方法启动/停止也可以在您的情况下使用。别忘了在它们中调用super方法。当您启动/停止通常只执行一次的组件时,会调用这些方法...
希望它对你有所帮助。 亨利