我在尝试实现 spring 缓存时遇到了问题。
我只能提供一个示意性片段(发布真实代码可能会让我被解雇:S)
public class CacheTestServiceImpl {
@Cacheable(value=SOME_STRING_CONSTANT, key="#root.targetClass.createHashCode(#root.args[0])")
public int getID(String userName, String someOtherParam) {
}
public int createHashCode(String userName) {
return 0;
}
}
我不断收到的错误是EL1004E:(pos 18):在CacheTestServiceImpl类型上找不到方法createHashCode(String)。
关于我可能做错了什么有什么建议吗?如果您需要任何进一步的信息,我很乐意提供 ofc :) 谢谢
编辑:我只是有一个“绝妙”的想法来搜索错误代码本身并挖出了这个:relevant stack-oerflow question
所以我会检查一下并更新这个问题..
最佳答案
您正在尝试调用静态方法createHashCode,但您的类未声明任何方法。因此,要么使您的方法静态,要么使用 #root.target.createHashCode(#root.args[0])
SpEL 表达式。
关于java - SpEL - 错误 : Method cannot be found on type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37135971/