jetCache框架的@Cached注解的key怎么写表达式

@Cached(name = "userCache", key = "user_#userId + '-' + #userName", expire = 3600)
public User getUserByIdAndName(Long userId, String userName){
    // ...
}

 

在这个例子中,@Cached注解的key属性的值为"user_#userId + '-' + #userName",这是一个更加复杂的字符串表达式。在运行时,JetCache框架会根据方法调用时的参数值来替换其中的变量,然后再将整个字符串表达式作为该缓存项的key值。name字段会作为key的前缀

 

@Cached(name = "userCache", key = "#user.id", expire = 3600)
public User getUserById(User user) {
    // 从数据库中查询用户信息
    User result = userDao.getUserById(user.getId());
    return result;
}

在这个例子中,@Cached注解的key属性的值为“#user.id”,表示将传入的User对象的id属性作为缓存项的key。在运行时,JetCache框架会根据getUserById方法的参数值来替换#user.id变量,从而得到最终的缓存项key。

如果要取的是参数对象中的多个属性,可以使用类似“#user.id+''+#user.name”的形式来拼接多个属性。注意,在这种情况下,拼接的属性值之间需要添加连接符,例如“”、“-”等。

posted @ 2023-06-29 17:12  ENU  阅读(1713)  评论(0编辑  收藏  举报