类 RoleCache
java.lang.Object
net.sohelp.boot.admin.core.cache.RoleCache
- 所有已实现的接口:
ISohelpCache
岗位缓存(永不过期,按需失效)
Key 规则:"role:{roleId}" → 岗位名称。
NONE 模式每次直接查库。
- 从以下版本开始:
- 2023/7/21 15:17
- 作者:
- AaronFung
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明获取缓存描述信息获取缓存名称(唯一标识)获取单个岗位信息getRoleName(Object roleId) 根据岗位 ID 获取岗位名称批量获取岗位信息列表voidinit()初始化方法,在 Bean 创建后自动调用voidreload()从数据库重新加载全部岗位数据到缓存void根据岗位 ID 重新加载单个岗位到缓存void移除指定岗位的缓存条目从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 net.sohelp.boot.admin.core.cache.ISohelpCache
clear, get, getProvider, put, remove
-
构造器详细资料
-
RoleCache
public RoleCache()
-
-
方法详细资料
-
init
@PostConstruct public void init()初始化方法,在 Bean 创建后自动调用通过
SohelpCacheManager创建名为 "role"、永不过期(TTL=0)的缓存提供者。 -
cacheName
获取缓存名称(唯一标识)- 指定者:
cacheName在接口中ISohelpCache- 返回:
- 缓存唯一标识名称 "role"
-
cacheDescription
获取缓存描述信息- 指定者:
cacheDescription在接口中ISohelpCache- 返回:
- 缓存的中文描述文本 "岗位缓存"
-
reload
@Comment("\u542f\u52a8\uff0c\u52a0\u8f7d\u5c97\u4f4d\u5230\u7f13\u5b58") public void reload() throws SQLException从数据库重新加载全部岗位数据到缓存先清空现有缓存,然后从
pb_role表查询所有岗位, 将岗位 ID 与岗位名称的映射写入缓存。跳过名称为空的岗位。- 指定者:
reload在接口中ISohelpCache- 抛出:
SQLException- 数据库查询过程中发生异常
-
reload
@Comment("\u6839\u636e\u5c97\u4f4dID,\u91cd\u65b0\u52a0\u8f7d\u5230\u7f13\u5b58") public void reload(@Comment("\u5c97\u4f4dID") Object roleId) throws SQLException 根据岗位 ID 重新加载单个岗位到缓存先移除该岗位的旧缓存条目,再从数据库查询最新数据并写入缓存。 仅在查询结果非空且岗位名称非空且缓存启用时才写入。
- 参数:
roleId- 岗位 ID,为null或空字符串时不执行任何操作- 抛出:
SQLException- 数据库查询过程中发生异常
-
getRole
获取单个岗位信息根据岗位 ID 从缓存中获取岗位名称,并组装成包含
id和role_name的 Map。 若缓存中未找到名称,则默认显示 "Unknown Role"。- 参数:
roleId- 岗位 ID,不能为null- 返回:
- 包含 "id" 和 "role_name" 的 Map
-
getRoles
批量获取岗位信息列表根据岗位 ID 列表,逐个从缓存中获取岗位名称并组装成包含
id和role_name的 Map 列表。 若缓存中未找到名称,则默认显示 "未知角色"。- 参数:
roles- 岗位 ID 列表,为null时返回空列表- 返回:
- 岗位信息列表,每个元素为包含 "id" 和 "role_name" 的 Map
-
getRoleName
@Comment("\u83b7\u53d6\u5c97\u4f4d\u540d\u79f0") public String getRoleName(@Comment("\u5c97\u4f4dID") Object roleId) throws SQLException 根据岗位 ID 获取岗位名称优先从缓存中获取;若缓存未启用(NONE 模式),则直接查询数据库。 若缓存中未命中,会触发全量重载后再次尝试获取。
- 参数:
roleId- 岗位 ID,为null或空字符串时返回空字符串- 返回:
- 岗位名称;未找到时返回空字符串
- 抛出:
SQLException- 数据库查询过程中发生异常
-
remove
@Comment("\u6e05\u7a7a\u5c97\u4f4d\u7f13\u5b58") public void remove(@Comment("\u5c97\u4f4dID") Object roleId) 移除指定岗位的缓存条目- 参数:
roleId- 岗位 ID,为null或空字符串时不执行任何操作
-