我在Scala中有一个Play框架应用程序。它使用数据库,我需要在第一个应用程序开始之前将数据加载到数据库中。我想我可以在应用程序中添加一个带有主类的类,然后像play -main loadDataClass
一样启动它。它似乎正在工作,但是一旦我访问了Play.current.configuration
,我就需要它来访问数据库凭据。我知道这个错误:
线程"main“java.lang.RuntimeException中的异常:没有启动应用程序
请建议如何实现这一点。我应该以某种方式启动申请吗?
发布于 2015-09-20 12:56:12
您需要创建一个模块,用于在启动时加载数据。在生产模式(激活器启动)中,它将在应用程序启动后运行,在开发模式(激活器运行)中,它将在对服务器的第一个请求之后运行。
创建模块
app/modules/PrepareDatabaseModule.scala:
在这个模块内
package modules
import com.google.inject.AbstractModule
trait PrepareDatabase {}
class PrepareDatabaseClass extends PrepareDatabase {
initialize()
def initialize() = {
// Load your data here
}
}
class PrepareDatabaseModule extends AbstractModule {
def configure() = {
bind(classOf[PrepareDatabase])
.to(classOf[PrepareDatabaseClass]).asEagerSingleton
}
}
在conf/应用中
play.modules.enabled += "modules.PrepareDatabaseModule"
https://stackoverflow.com/questions/32677685
复制相似问题