在Shiro框架內使用快取註解失效的解決辦法

2021-09-11 16:50:52 字數 1175 閱讀 1862

這個問題困擾了我好多天

問題serviceimpl類裡的方法上有快取註解,用於將返回的實體類存入redis,下次呼叫時就不需要通過資料庫獲取實體類資訊。

shiro框架內由於自定義了ream,需要注入service來獲取使用者實體類資訊。

而後執行時,發現快取註解並沒有起作用,兩次呼叫service方法,都進入了方法,而不是讀取快取。

/**

* 用來給shiro注入認證資訊和授權資訊

*/@component("userrealm")

public class userrealm extends authorizingrealm

/*** 身份認證

** @param authenticationtoken

* @return

* @throws authenticationexception

*/@override

protected authenticationinfo dogetauthenticationinfo(authenticationtoken authenticationtoken) throws authenticationexception

return new ******authenticationinfo(

user,

user.getpassword().tochararray(),

bytesource.util.bytes("salt-sdwbhx23i"),//鹽,可自定義

getname());}

}

@service

public class userserviceimpl implements userservice

}

解決辦法

在shiro框架內注入bean時,除了@autowired註解外,再加入@lazy註解。

這樣會使得注入到shiro框架的bean延時載入(即在第一次使用的時候載入)

原因spring boot整合shiro後,部分註解(cache快取、transaction事務等)失效的問題

簡單來說,就是shiro框架初始化比spring框架的某些部件早,導致使用@autowire注入shiro框架的某些類不能被spring正確初始化。

在Shiro框架內使用快取註解失效的解決辦法

這個問題困擾了我好多天 問題serviceimpl類裡的方法上有快取註解,用於將返回的實體類存入redis,下次呼叫時就不需要通過資料庫獲取實體類資訊。shiro框架內由於自定義了ream,需要注入service來獲取使用者實體類資訊。而後執行時,發現快取註解並沒有起作用,兩次呼叫service方法...

shiro註解使用

requiresauthentication 驗證使用者是否登入,等同於方法 subject.isauthenticated 結果為 true時。requiresuser 驗證使用者是否被記憶,user 有兩種含義 一種是成功登入的 subject.isauthenticated 結果為 true ...

shiro註解的使用

使用spring springmvc mybatis shiro開發許可權管理的demo 1.表的建立 permission 許可權表 role 角色表 user 使用者表 role permission 角色許可權表 user role 使用者角色表 獲取許可權的步驟 使用者id 角色id 角色名...