使用するシーン:
バックグラウンドデータの更新でフロントエンドに通知してキャッシュを同期的に更新する必要がある場合は、インターフェイスインターセプターの応答ヘッダーに属性を追加することでフロントエンドに通知できます。
処理ロジック:
1.ユーザーキャッシュのステータスを管理します。
import java.util.HashMap;
import java.util.Map;
/ ***
フロントエンドユーザーがキャッシュの状態をクリアする必要があるかどうかを管理します
* /
public class CacheUtil {
private static Map <String、Boolean> cacheMap = new HashMap <>();
/ **
*追加/変更ユーザキャッシュのステータス
* @paramユーザー名* /パブリック静的な無効putStatus(文字列のユーザー名、ブールB){ cachemapを.put(ユーザー名、B); } / ** *取得したユーザのキャッシュstatus * @param username * @return * / public static
ブールgetStatus(String username){
ブールb = cacheMap .get(username);
if(b == null){
falseを返す;
}
return b;
}
/
***获取登录用户缓存事态
* @ return * / public static Boolean getStatus(){ String username = UserUtil。getLoginUser()。getUsername(); ブール値cacheStatus = cacheMap .get(username); ブールb = false ; if(cacheStatus!= null){
b = cacheStatus;
}
putStatus(username、false);
return b;
}
/ ***
ログインしたユーザーのキャッシュステータスを設定します
* / public static void setStatus(boolean b){ for(String username:cacheMap .keySet( )){ cacheMap .put(username、b); } } }
2.インターセプターに状態を追加します。
httpResponse.setHeader(「アクセス制御-露光-ヘッダ」、「キャッシュステータス」); // [フロントエンドで見えるように、この属性を設定]
httpResponse.setHeader(「キャッシュステータス」、CacheUtil。getStatusメソッド() .toString()); // [属性の設定]
3.データが変更された後、キャッシュの状態を変更します。
総括する
バックグラウンドデータが変更されると、フロントエンドステータスはインターフェイスの応答ヘッダーのステータスを通じて通知されます