1

We have a WebApplication which at start-up fetches all required information from Database and stores it in Java maps.

These maps are later used throughout in the application to fetch information required.

But in this approach whatever updates are done in database are not reflected till you restart the application.

So how can we automatically reload such classes / repositories in Java?

Thanks in advance.

4

3 回答 3

0

我的理解是,您需要重新加载类只是因为您需要刷新在启动期间从数据库加载的数据。这不是真的吗?如果是,那么如果其他一些机制可以刷新您的数据,那么我认为您仍然不需要重新加载您的类。

尝试使用一些缓存机制。看看EhCache

正如其他人指出的那样,您可以使用 Quartz 调度程序。但是等等......这也是另一个图书馆。

好吧,您也可以自己使用TimerTimerTask,否则。只需安排该任务重复执行,正如您在评论中指出您需要每小时加载它的某处。

于 2013-05-10T09:30:27.383 回答
0

您可以在后台运行一些守护进程Thread,这些守护进程实际上会在中间间隔内与数据库交互以更新最新数据。

您也可以使用标准缓存机制,如 EhCache 或 Guava 缓存来实现这一点。

于 2013-05-10T09:31:06.473 回答
0

为此,您可以简单地使用Quartz 。您只需为其设置一个任务,它就会为您处理定期更新。我认为,教程 2是专为您制作的:D

另一方面,您应该处理配置 Map 对象上的并行访问/写入 - 注意线程安全!

于 2013-05-10T09:59:47.420 回答