我在我的 Tomcat 中使用 Apache Shiro,我想通过 EhCache 启用授权缓存。
我所做的是在 shiro.ini 中添加这两行:
cacheManager = org.apache.shiro.cache.ehcache.EhCacheManager securityManager.cacheManager = $cacheManager
并将 ehcache-core-2.5.1.jar 复制到我的 WEB-INF/lib 目录中。对于授权,我实现了一个从 MySQL 数据库读取权限的自定义领域。所以我想启用缓存以尽可能减少对数据库的查询......我不得不提到我对EhCache并不熟悉,我只想启用授权的缓存!
如果我正确理解了 Shiro 文档,以上内容足以启用缓存 - 但是我没有看到:(
Tomcat 无异常启动,并且在测试 JSP 中,我使用的授权起初工作正常。如果我对数据库的权限进行更改,我会看到测试 JSP 立即意识到更改!我期待测试 JSP 会从缓存中返回值......你能告诉我可能有什么问题吗?另外,有没有办法查明是否实际调用了 EhCache 以及它的行为方式(如果需要启用日志记录,如果您提供详细信息,我将不胜感激,因为我对此不太熟悉)。
更新:我还必须提到我添加了该行
System.out.println("缓存已启用" + isCachingEnabled() );
在我的自定义领域的初始化中,我得到了真实!
TIA,
塞拉芬