首页 > 解决方案 > Spring Boot Cache 示例中如何识别对象

问题描述

我只是在查看 SpringBoot-Cache-sample ( https://spring.io/guides/gs/caching/ ) 并且想知道如何检测缓存 Book 对象。

要检索的对象由“Book”类与构造函数进行实例化:

private String isbn;
private String title;

public Book(String isbn, String title) {
    this.isbn = isbn;
    this.title = title;
}
 @Override
 public String toString() {
     return "Book{" + "isbn='" + isbn + '\'' + ", title='" + title + '\'' + '}';
}

维护这些对象的类如下所示:

@Override
@Cacheable("books")
public Book getByIsbn(String isbn) {
    simulateSlowService();
    return new Book(isbn, "Some book");
}

每个对象都是“新的”。似乎有一个包装器,它在内部以方法参数作为键来堆叠返回值。再次调用时,在真正运行该方法之前会搜索堆栈。

我解释得对吗?

但是我怎样才能摆脱不再想要的对象呢?我是否需要使用 @Cacheable("books") - 注释重新实例化持有该方法的类?

标签: spring-bootcaching

解决方案


是的,我解释的没错。之前可以查看 JavaDoc。对不起。


推荐阅读