Spring mvc Spring在定义的时间段后销毁临时对象
我有一个SpringMVC表单,它使用kaptcha来证明用户是人而不是机器。输入请求的信息后,将生成一个随机值,该值必须在servlet上下文中可用120秒。用户可以将该值作为另一个应用程序加载项的密钥输入,以完成注册过程。这就是为什么随机值必须具有全局范围而不是会话范围的原因。如果在这120秒内没有其他应用程序收到任何请求,我想销毁这个随机字符串/对象。我在这里寻找最佳实践,即我能想到的一种方法是在Spring中实现,下面是一个示例 1创建一个集合,该集合可以容纳该随机值类型的多个对象 2将radom值保存在应用程序上下文中,而不是会话中 3定义具有全局会话范围的对象 4当请求传入时,获取HttpServletRequest提取用户发送的值 5迭代trouh-teh应用程序上下文,如果发现此类值,则继续进行,如果不立即结束该过程 现在,这在理论上可能会起作用,但是如果在定义的类型周期(即120秒)内没有请求对象,我如何确保在步骤1中生成的值在120秒后被销毁。我想确保内存已释放Spring mvc Spring在定义的时间段后销毁临时对象,spring-mvc,Spring Mvc,我有一个SpringMVC表单,它使用kaptcha来证明用户是人而不是机器。输入请求的信息后,将生成一个随机值,该值必须在servlet上下文中可用120秒。用户可以将该值作为另一个应用程序加载项的密钥输入,以完成注册过程。这就是为什么随机值必须具有全局范围而不是会话范围的原因。如果在这120秒内没有其他应用程序收到任何请求,我想销毁这个随机字符串/对象。我在这里寻找最佳实践,即我能想到的一种方法是在Spring中实现,下面是一个示例 1创建一个集合,该集合可以容纳该随机值类型的多个对象 2将
在Spring中实现这种构造的最佳实践是什么。Shell我使用TaskScheduler还是其他什么?应用程序上下文中存储该随机值的最佳位置是什么?这正是会话或数据库的用途。为什么要在任何会话中使用该共享值的servlet上下文,而不是简单地将随机值放入会话中,并在同一会话的下一个请求中进行比较?关键是我不能把它放在会话中,因为随机值应该从另一个应用程序发布,也就是说,它可能是另一个会话,另一台PC,因此我需要它在全局servlet上下文中,也就是说,它不应该是会话范围的值BART,这不应该像我之前提到的那样放在会话中,该值应该可以从任何会话中访问,我希望保存该随机值的对象在内存中,而不是数据库中,从而使事情更快一些