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”的形式来拼接多个属性。注意,在这种情况下,拼接的属性值之间需要添加连接符,例如“”、“-”等。