如何在scala和play中创建基于事件的系统

如何在scala和play中创建基于事件的系统,scala,playframework,Scala,Playframework,我希望能够做到这一点,比如在全球或应用程序启动初期的某个地方: UserDao.beforeSave(someFunction) 然后每当我保存用户对象时,如: UserDao.save(user) 我的someFunction将被调用 这可能吗?如果可能,我应该如何对这种行为进行建模 这是为了为应用程序中的关键点创建一个基于事件的系统,因此开发人员可以修改系统,而不必更改核心代码库。正如上面的评论所建议的那样,如果您确实想在保存之前做些什么,也许应该在UserDAO.Save方法中完成。如

我希望能够做到这一点,比如在全球或应用程序启动初期的某个地方:

UserDao.beforeSave(someFunction)
然后每当我保存用户对象时,如:

UserDao.save(user)
我的someFunction将被调用

这可能吗?如果可能,我应该如何对这种行为进行建模


这是为了为应用程序中的关键点创建一个基于事件的系统,因此开发人员可以修改系统,而不必更改核心代码库。

正如上面的评论所建议的那样,如果您确实想在保存之前做些什么,也许应该在UserDAO.Save方法中完成。如果没有,那么可能创建一个UserService


如果实际保存之前的事件没有那么重要,可以使用发送的Akka事件。但是,Akka事件无法保证,它将在保存事件之前进行

这与基于事件的系统有什么关系?UserDao也是你要写的东西吗?你为什么要这么做?假设您正在编写UserDao,那么为什么不将该功能放在UserDao中?@Ryan提供了一个可插入的体系结构,人们可以通过连接事件来定制应用程序。我正在寻找我的问题的解决方案,这不是一种不同的设计:这是为了让开发人员能够钩住应用程序的生命周期,并在不改变核心代码库的情况下对其进行修改。我希望在保存事件之前/之后。希望这能把事情弄清楚。