Grails 3 -store会话数据在控制器中,范围='session'?

时间:2016-11-28 03:43:18

标签: grails grails-controller

不知怎的,这似乎是一个坏主意,但是当你在控制器中使用会话范围来存储控制器字段中的会话数据时,想知道它是否推荐,例如,作为一种用户数据的缓存所以你没有必须继续点击数据库来获取特定用户经常请求的信息吗?

顺便说一句,只是想知道服务器在这种情况下持有多长时间控制器实例。如果有人让浏览器选项卡打开一周而不是使用它,那么该会话的控制器实例会无限期地消耗掉服务器上的资源吗?

1 个答案:

答案 0 :(得分:0)

你可以使用这样的控制器,但为什么不只是简单地使用缓存呢?那里有许多非常好的缓存(例如Spring缓存),它可能比这种方法更具可扩展性。

会话管理(以及它们到期时)由您的应用程序容器(例如Tomcat,JBoss,Websphere等)处理。在大多数情况下,如果没有与服务器交互(例如,点击URL或页面),它们将在默认的20分钟后过期。因此,一旦会话到期,会话范围控制器实例就成为被清理和删除的候选者。