我已在this博客上阅读了有关如何正确使用resourceResolver的信息。作者引用
如果您打开Sling ResourceResolver的JCR会话,您也是 负责关闭它。另一方面:如果你通过了 ResourceResolver或Session对象,不要调用logout()或close() 在它上面。
我无法理解这个概念,可能是因为在这种情况下没有代码示例。
据我所知,我可以通过servlet中的request.getResourceResolver()获取ResourceResolver对象,在OSGi组件中使用@Reference SCR注释,使用jsp的隐式resourceResolver对象,在jsp中使用sling.getService() ,还可以通过适应ResourceResolver对象。
在获取resourceResolver对象的所有方法中,我应该关闭哪些以及与这些对象相关联的会话是什么?
答案 0 :(得分:3)
将其视为文件资源。
因此,您的代码应该打开&在同一范围内关闭。
如果您获得resourceResolver
FROM资源,则无法打开解析程序,也无需关闭它。
在博客示例中,他们从session = repo.loginAdministrative()
生成会话(Repository不再使用此方法);因此负责在同一范围内调用session.logout()
(使用finally {...}
块)。