如何使用spel调用非静态方法获取redis key?

How to invoke non-static method to get redis key using spel?

我正在阅读 spring 为 Redis 缓存创建自定义键的文档。

https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/cache.html

其中一个例子是

@Cacheable(value="books", key="T(someType).hash(#isbn)")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)

现在如果我想使用静态散列方法生成密钥,这是有效的class。但是如何使用非静态方法生成密钥 class ?

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)")