gpt4 book ai didi

playframework - Play 2.4 - 在 Eager 单例模块中使用 Ebean

转载 作者:行者123 更新时间:2023-12-04 06:27:54 24 4
gpt4 key购买 nike

我有个问题。

我正在将 Play Framework 与 Ebean 一起使用。我正在尝试将我的应用程序移植到 Play 2.4,并且我正在尝试使用 Play 中引入的依赖注入(inject)技术。

在以前的版本中,我使用 GlobalSettings.onStart() 在应用程序启动后初始化一些东西(类似 cron 的服务)。在 2.4 中,我正在尝试使用依赖注入(inject)框架将“onStart”过程实现为急切加载的单例。

一般来说,它正在工作。但是,有时,我在启动应用程序时收到 NullPointerException。从堆栈跟踪中,我可以假设访问数据库时发生异常(当时 EbeanServer 为空)。所以我假设,Ebean 没有正确启动,因为在应用程序启动之前初始化了热切的单例。好的,然后我将 Play 的 Application 和 Database 对象注入(inject)到急切的单例构造函数中,以便及时启动一切。

结果……不稳定。有时应用程序启动正常,有时它会陷入相同的 NullPointerException。

看起来数据库有时没有及时启动还是什么?或者我可能需要注入(inject)一些其他 Ebean 对象才能启动数据库?

最佳答案

好的,我想通了。

我不得不注入(inject) play.db.ebean.EbeanConfigplay.api.db.evolutions.DynamicEvolutions现在 Ebean 作为我热切的单例的依赖项更早地开始了。

这些是确切的两个类,在加载 play-ebean 插件时注入(inject),您可以在此处看到 https://github.com/playframework/play-ebean/blob/master/play-ebean/src/main/java/play/db/ebean/EbeanModule.java

关于playframework - Play 2.4 - 在 Eager 单例模块中使用 Ebean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com