ajax获取shiroehcache,Shiro – 使用EhCache缓存
在Shiro中加入緩存可以使權限相關操作盡可能快,避免頻繁訪問數據庫獲取權限信息,因為對于一個用戶來說,其權限在短時間內基本是不會變化的。
在上一篇Shiro – 權限控制中,當用戶訪問”獲取用戶信息”、”新增用戶”和”刪除用戶”的時候,后臺輸出了三次打印信息
這對數據庫來說是沒必要的消耗。接下來使用緩存來解決這個問題。
引入EhCache的相關依賴
org.apache.shiro
shiro-ehcache
1.3.2
org.springframework.boot
spring-boot-starter-cache
net.sf.ehcache
ehcache
org.apache.shiro
shiro-ehcache
1.3.2
org.springframework.boot
spring-boot-starter-cache
net.sf.ehcache
ehcache
添加EhCache的配置文件
在src/main/resource/..路徑下新增一個Ehcache配置——shiro-ehcache.xml:
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120" />
name="passwordRetryCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true" />
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120" />
name="passwordRetryCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true" />
將緩存對象注入到SecurityManager中
@Bean
public EhCacheManager getEhCacheManager() {
EhCacheManager em = new EhCacheManager();
em.setCacheManagerConfigFile("classpath:config/shiro-ehcache.xml");
return em;
}
@Bean
public SecurityManager securityManager(){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm());
securityManager.setRememberMeManager(rememberMeManager());
securityManager.setCacheManager(getEhCacheManager());
return securityManager;
}
@Bean
public EhCacheManager getEhCacheManager() {
EhCacheManager em = new EhCacheManager();
em.setCacheManagerConfigFile("classpath:config/shiro-ehcache.xml");
return em;
}
@Bean
public SecurityManager securityManager(){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm());
securityManager.setRememberMeManager(rememberMeManager());
securityManager.setCacheManager(getEhCacheManager());
return securityManager;
}
配置完畢啟動項目,分別訪問訪問”獲取用戶信息”、”新增用戶”和”刪除用戶”,可發現后臺只打印一次獲取權限信息:
總結
以上是生活随笔為你收集整理的ajax获取shiroehcache,Shiro – 使用EhCache缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7 Aero特效不显示怎么办(wi
- 下一篇: 服务器备份文件格式,证书服务器,备份,还