【发布时间】:2018-11-10 15:13:09
【问题描述】:
我只是在查看 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-boot caching