如何将数据库插入行事件捕获到使用 Spring web mvc 构建的 web 应用程序中?

how to Capture database insert row event into a web application built using Spring web mvc?

我有一个要求,我需要在 Web 应用程序的 table 中捕获一个插入行事件,以通知用户最新添加的记录。

场景

应用程序 A1 不断将记录泵入数据库 D1。应将任何新记录插入数据库 D1.

通知 Web 应用程序 W1

Web 应用程序是使用 spring-web-mvc,JPA 持久性开发的。我查看了使用 jpa 和 hibernate 提供的 entitylistner 事件的选项,但是如果同一个应用程序执行插入操作,这会受到限制,但情况并非如此。

你能帮帮我吗,我该如何解决这个问题?

根据您的要求,有多种方法可以实现您想要的效果。

由于您没有提供具体要求,让我就如何实现它提出一些想法。

1.使用数据库触发器:您可以将触发器添加到有问题的table。当 D1 将记录插入此 table 时,使用插入触发器可以将记录的 ID 添加到通知 table。您的应用程序 W1 可能有一个计划任务从通知 table 中读取记录。假设它每 5 秒运行一次并检查那里是否有新记录。如果是这样,它会读取它们,处理它们, 然后从通知中删除记录 table.

2。使用队列:如果记录只能通过应用程序 D1 插入到有问题的 table 中,因此应用程序 D1 是此 table 中记录的唯一入口点,那么您使用消息队列。当 D1 插入新记录时,您将包含插入记录详细信息的消息发送到消息队列。应用程序 W1 只是该队列的订阅者。一旦记录到达,W1 从队列中读取它们并处理它们。

3。使用 Web 服务: 再一次,如果记录只能通过 D1 插入,则 W1 可以公开一个 Web 服务,以便在创建记录时得到通知。因此,当 D1 创建新记录时,它也可以调用此 Web 服务并让 W1 知道刚刚插入了一条新记录,然后 W1 可以相应地采取行动。

并且可能有更多替代方法可以做到这一点。