用例:我的spring应用程序从数据库读取数据,但访问预加载的数据库的缓存。虽然很少,但这些表可能会发生变化。在这样的事件上,缓存需要被无效和预加载。同样不是应用程序只读取数据。
经过一番研究,我找到了两个选择..
选项1 :数据库触发器,用于调用Spring任务。
我需要在每个表的插入/更新上配置触发器,这些表应该调用spring @Scheduled任务。这将负责刷新缓存。但是,如何在数据库触发器上调用Spring的@Scheduled任务?
选项2 :使用Oracle的DatabaseChangeNotification
我必须在Oracle DB中注册一个监听器。这将听取所有更改,并在发生更改时通知我的应用程序。但那我怎么用Spring做这个呢?
哪个更好?有更好的选择吗?还有任何进一步推进选项的帮助吗?
注意:我使用的是Spring + JPA + Oracle 10g