我使用Play framework 1.2.5和Hibernate 3.25来开发我的web应用程序。我遇到了应用程序启动的问题,它非常慢:(
对于任何Java servlet驱动的应用程序,我们使用ServletContextListener来初始化会话工厂(这实际上是一项耗时的工作)。一旦部署了应用程序,会话工厂将被初始化,所有这些都必须在应用程序准备好供最终用户使用之前完成。这样,当用户触发第一个请求时,第一个请求的响应时间会更快。
但是,for Play框架不遵循任何servlet架构。因此,不确定如何实现类似于ServletContextListener的东西,即在应用程序准备好供最终用户使用之前创建所有会话工厂。
如果没有这一点,应用程序在第一次请求时就会非常慢。
我确信在Play Framework中可能会有一些东西也会做同样的事情,但我不知道。
请让我知道这件事。
发布于 2013-01-27 18:57:51
您可以使用Job来初始化您的应用程序。例如,您可以有一个用@OnApplicationStart注释的引导作业,它将负责加载您的静态数据或初始化您的缓存或工厂。
@OnApplicationStart
public class Bootstrap extends Job {
public void doJob() {
//Load static data
//Initialise cache
//Initialise factories
...
// ready to serve application
}
}发布于 2013-01-27 16:53:38
您可能是在开发模式下运行应用程序,在这种模式下,在第一个请求时,所有内容都会进行延迟编译和初始化。生产模式在实际启动服务器之前编译所有内容。请参阅http://www.playframework.org/documentation/1.2.5/production
发布于 2013-01-27 18:19:36
JB应该是正确的。简而言之,您可以使用--%prod选项启动服务器:
play run --%prod或
play start --%prodhttps://stackoverflow.com/questions/14545683
复制相似问题