Java / Spring中的全球状态

时间:2016-02-27 04:14:35

标签: java spring spring-mvc redux

我的公司内部网上有一个基本的Java / Spring MVC CRUD应用程序。我还是初学者,这个应用程序是我用来学习Java和Web应用程序的。基本上它有一个表,它使用AJAX定期刷新其数据,以及一个输入数据库的html表单。刷新很重要,因为在需要查看其他计算机输入的多台计算机上查看数据。

问题在于,由于我无法控制的网络问题,某些计算机上的数据库事务可能会非常慢。

过去几周我一直在使用React/Redux JavaScript客户端应用程序和状态概念。现在,我可以说,全球状态或变量受到Java社区的谴责。错误,测试困难等等。

但Redux给了我一个想法,当用户点击“提交”而不是在SQL中插入一行时,它会将该对象存储在服务器的内存中。然后定期将内存插入数据库 - 这样用户就不必等待数据库事务,只需要与服务器进行通信。表刷新不会查看数据库 - 它们会查看此内存。

但是,作为初学者,我不认为人们这样做。为什么这是个坏主意?

1 个答案:

答案 0 :(得分:1)

一般情况下,有两个原因:

  • 状态无法保证,因为它实际上并未写入。 如果在将数据刷新到数据库之前重新启动应用程序,则会以静默方式删除它。虽然这显然不是一件好事,但你的解释可能非常。如果你不在乎这么多,这可能没问题。您可以通过在本地某处持久化来解决这个问题。

  • 状态也不能保证,因为您可能最终无法写入数据,例如,某些数据库约束。

所以,总的来说,它是不受欢迎的,因为你对客户撒谎......你说你写了它,但是没有实际的努力来确保这实际发生了。

但话又说回来。如果数据不太重要,那可能没问题。