gpt4 book ai didi

java - Spring缓存与reflect方法

转载 作者:行者123 更新时间:2023-12-01 14:54:17 27 4
gpt4 key购买 nike

我正在尝试使用缓存抽象文档中的方法访问自定义 key 生成器来生成缓存 key ,但到目前为止我还没有找到任何解决方案...这里我给出我的代码

@Cacheable(value = "itemsCache", key ="T(com.ernst.transactionsAPI.IndexKeyGenerator).generate(#root.target, #root.method.name, #root.args[0])")<br/>
public List<FilialenImpl> getOutletByCustomSearchCache(SearchParametersImpl searchParameters);

我收到以下错误:

org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 47): Method call: Method generate(com.ernst.transactionsImpl.filialen.FilialenServiceBean,java.lang.String,com.ernst.persistenceImpl.impl.SearchParametersImpl) cannot be found on com.ernst.transactionsAPI.IndexKeyGenerator type

它不反射(reflect)方法名称,而是传递方法类型......任何人都可以解决这个问题。

indexkeygenerator 中的方法看起来像

public Object generate(Object target, Method method, Object... params) {
...}

提前致谢,

问候,拉贾塞卡。

最佳答案

我在IndexKeyGenerator类中编写了一个静态方法generateKey并直接调用它如下面的代码所示..然后用于单独缓存的自定义缓存工作得非常完美

@Cacheable(value = "itemsCache", key ="T(com.ernst.transactionsAPI.IndexKeyGenerator).generateKey(#root.target, #root.method, #root.args[0])")
public List<FilialenImpl> getOutletByCustomSearchCache(SearchParametersImpl searchParameters);

不要忘记重写 SearchParameters 类。

关于java - Spring缓存与reflect方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com