我在阅读spring文档,为redis缓存创建自定义键。
https:/docs.spring.iospringdocs4.1.xspring-framework-referencehtmlcache.html。
其中一个例子是
@Cacheable(value="books", key="T(someType).hash(#isbn)")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)
现在,如果我想使用静态类的哈希方法来生成密钥,这是有道理的,但如何使用非静态类的方法来生成密钥呢?但如何使用非静态类的方法生成密钥?
class A{
@Cacheable(value="books", key="(A).hash(#isbn)")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)
String hash(){
return ..some logic;
}
我试过这种方法......它没有工作。
你需要使用bean名称来引用一个实例。
@Cacheable(value="books", key="@aBeanName.hash(#isbn)")