类 UserParamCache
java.lang.Object
net.sohelp.boot.admin.core.cache.UserParamCache
- 所有已实现的接口:
ISohelpCache
用户个性化参数缓存(永不过期,按需失效)
Key 规则:"{userId}" → 参数 Map JSON(name → value)。
NONE 模式每次直接查库。
该缓存用于存储每个用户的个性化配置参数,例如界面偏好、默认设置等。
缓存 TTL 设置为 0,即永不自动过期,仅在手动调用 reload() 或
delete(Object) 等方法时才会失效或刷新。
- 从以下版本开始:
- 2023/3/28
- 作者:
- AaronFung
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明获取缓存的中文描述信息。获取缓存名称。void根据用户ID,删除该用户的所有个性化参数。void根据用户ID和参数名,删除该用户的指定个性化参数。getBoolean(Object userId, String key) 获取指定用户的某个参数值,转换为 Boolean 类型。获取指定用户的某个参数值,格式化为日期字符串(yyyy-MM-dd)。getDateTime(Object userId, String key) 获取指定用户的某个参数值,格式化为日期时间字符串(yyyy-MM-dd HH:mm:ss)。获取指定用户的某个参数值,转换为 Double 类型。获取指定用户的某个参数值,转换为 Float 类型。获取指定用户的某个参数值,转换为 Integer 类型。com.alibaba.fastjson.JSONObject获取指定用户的某个参数值,解析为JSONObject对象。获取指定用户的某个参数值,解析为List<Object>。获取指定用户的某个参数值,解析为Map<String, Object>。获取指定用户的某个参数值,返回 Object 类型。获取指定用户的某个参数值,转换为 String 类型。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
-
构造器详细资料
-
UserParamCache
public UserParamCache()
-
-
方法详细资料
-
init
@PostConstruct public void init()初始化方法,在 Bean 创建完成后由容器自动调用。 通过缓存管理器创建名为 "user_param"、TTL 为 0(永不过期)的缓存提供者。 -
cacheName
获取缓存名称。- 指定者:
cacheName在接口中ISohelpCache- 返回:
- 缓存名称字符串 "user_param"
-
cacheDescription
获取缓存的中文描述信息。- 指定者:
cacheDescription在接口中ISohelpCache- 返回:
- 缓存描述字符串 "用户个性化参数缓存"
-
getObject
@Comment("\u83b7\u53d6Object\u7c7b\u578b\u7684\u503c") public Object getObject(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String name) throws SQLException 获取指定用户的某个参数值,返回 Object 类型。- 参数:
userId- 用户ID,用于定位该用户的参数集合name- 参数名称,用于在参数 Map 中查找对应值- 返回:
- 参数值对象;如果用户参数不存在或该参数名不存在,则返回
null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getString
@Comment("\u83b7\u53d6String\u7c7b\u578b\u7684\u503c") public String getString(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,转换为 String 类型。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 参数的字符串值;如果不存在则返回空字符串 ""
- 抛出:
SQLException- 当数据库操作异常时抛出
-
getInt
@Comment("\u83b7\u53d6Integer\u7c7b\u578b\u7684\u503c") public Integer getInt(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,转换为 Integer 类型。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 参数的整数值;如果不存在或转换失败则返回
null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getDouble
@Comment("\u83b7\u53d6Double\u7c7b\u578b\u7684\u503c") public Double getDouble(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,转换为 Double 类型。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 参数的双精度浮点值;如果不存在或转换失败则返回
null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getFloat
@Comment("\u83b7\u53d6Float\u7c7b\u578b\u7684\u503c") public Float getFloat(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,转换为 Float 类型。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 参数的单精度浮点值;如果不存在或转换失败则返回
null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getDate
@Comment("\u83b7\u53d6\u65e5\u671f") public String getDate(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,格式化为日期字符串(yyyy-MM-dd)。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 格式为 "yyyy-MM-dd" 的日期字符串;如果值为
null则返回null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getDateTime
@Comment("\u83b7\u53d6\u65e5\u671f\u65f6\u95f4") public String getDateTime(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,格式化为日期时间字符串(yyyy-MM-dd HH:mm:ss)。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 格式为 "yyyy-MM-dd HH:mm:ss" 的日期时间字符串;如果值为
null则返回null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getJson
@Comment("\u83b7\u53d6JSONObject\u7c7b\u578b\u7684\u503c") public com.alibaba.fastjson.JSONObject getJson(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,解析为JSONObject对象。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 解析后的 JSONObject 对象;如果值为空字符串则可能返回
null - 抛出:
SQLException- 当数据库操作异常时抛出
-
getMap
@Comment("\u83b7\u53d6Map\u7c7b\u578b\u7684\u503c") public Map<String,Object> getMap(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,解析为Map<String, Object>。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 解析后的 Map 对象;如果值为空或空白字符串,则返回空的 HashMap
- 抛出:
SQLException- 当数据库操作异常时抛出
-
getList
@Comment("\u83b7\u53d6List\u7c7b\u578b\u7684\u503c") public List<Object> getList(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,解析为List<Object>。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 解析后的 List 对象;如果值为空或空白字符串,则返回空的 ArrayList
- 抛出:
SQLException- 当数据库操作异常时抛出
-
getBoolean
@Comment("\u83b7\u53d6Boolean\u7c7b\u578b\u7684\u503c") public Boolean getBoolean(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String key) throws SQLException 获取指定用户的某个参数值,转换为 Boolean 类型。- 参数:
userId- 用户IDkey- 参数名称- 返回:
- 参数的布尔值;字符串 "true"(忽略大小写)返回
true,其他返回false - 抛出:
SQLException- 当数据库操作异常时抛出
-
update
@Comment("\u66f4\u65b0\u7f13\u5b58") public void update(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String name, @Comment("\u53c2\u6570\u503c") Object value) throws SQLException 更新或新增指定用户的某个参数值。如果该参数名在缓存中不存在,则执行数据库插入操作; 如果已存在,则执行数据库更新操作。操作完成后同步更新缓存。
- 参数:
userId- 用户IDname- 参数名称value- 参数值- 抛出:
SQLException- 当数据库操作异常时抛出
-
delete
@Comment("\u6839\u636e\u7528\u6237ID\uff0c\u5220\u9664\u6240\u6709\u4e2a\u6027\u5316\u53c2\u6570") public void delete(@Comment("\u7528\u6237ID") Object userId) throws SQLException 根据用户ID,删除该用户的所有个性化参数。同时清除缓存中对应的条目以及数据库中该用户的全部参数记录。
- 参数:
userId- 用户ID- 抛出:
SQLException- 当数据库操作异常时抛出
-
delete
@Comment("\u6839\u636e\u7528\u6237ID\u548cKey\uff0c\u5220\u9664\u6240\u6709\u4e2a\u6027\u5316\u53c2\u6570") public void delete(@Comment("\u7528\u6237ID") Object userId, @Comment("\u53c2\u6570\u540d") String name) throws SQLException 根据用户ID和参数名,删除该用户的指定个性化参数。从缓存的参数 Map 中移除指定键,并同步删除数据库中对应的记录。
- 参数:
userId- 用户IDname- 要删除的参数名称- 抛出:
SQLException- 当数据库操作异常时抛出
-
reload
@Comment("\u521d\u59cb\u5316\u7f13\u5b58\uff08\u5168\u91cf\uff09") public void reload() throws SQLException全量重新加载所有用户的个性化参数缓存。先清空整个缓存,然后从数据库读取全部用户参数记录, 按用户ID分组后批量写入缓存。如果缓存未启用(NONE 模式),则仅执行清空操作后直接返回。
- 指定者:
reload在接口中ISohelpCache- 抛出:
SQLException- 当数据库操作异常时抛出
-
reload
@Comment("\u6839\u636e\u7528\u6237ID\u91cd\u65b0\u52a0\u8f7d\u7f13\u5b58") public void reload(@Comment("\u7528\u6237ID") Object userId) throws SQLException 根据指定用户ID重新加载该用户的个性化参数缓存。先移除缓存中该用户的旧数据,然后从数据库读取该用户的全部参数记录并写入缓存。 如果缓存未启用(NONE 模式),则仅执行移除操作后直接返回。
- 参数:
userId- 用户ID- 抛出:
SQLException- 当数据库操作异常时抛出
-