Spring data cache的key生成

川长思鸟来 2022-12-06 04:21 218阅读 0赞

前言

key属性是用来指定Spring缓存方法的返回结果时对应的key的。该属性支持SpringEL表达式。当我们没有指定该属性时,Spring将使用默认策略生成key。我们这里先来看看自定义策略,至于默认策略会在后文单独介绍。
自定义策略是指我们可以通过Spring的EL表达式来指定我们的key。这里的EL表达式可以使用方法参数及它们对应的属性。使用方法参数时我们可以直接使用“#参数名”或者“#p参数index”。下面是几个使用参数作为key的示例。

  1. @Cacheable(value="users", key="#id")
  2. public User find(Integer id) {
  3. returnnull;
  4. }
  5. @Cacheable(value="users", key="#p0")
  6. public User find(Integer id) {
  7. returnnull;
  8. }
  9. @Cacheable(value="users", key="#user.id")
  10. public User find(User user) {
  11. returnnull;
  12. }
  13. @Cacheable(value="users", key="#p0.id")
  14. public User find(User user) {
  15. returnnull;
  16. }

除了上述使用方法参数作为key之外,Spring还为我们提供了一个root对象可以用来生成key。通过该root对象我们可以获取到以下信息。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,218人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring Cache

    Spring Cache介绍 Spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache提供了一