gpt4 book ai didi

java - Spring 缓存 - 如何在 SPEL 中引用 bean 以通过 @Cacheable 启用条件缓存

转载 作者:行者123 更新时间:2023-12-03 02:03:08 27 4
gpt4 key购买 nike

我有一个方法,我想根据对另一个 bean 的方法调用的结果(表示是否打开全局缓存)来有条件地缓存该方法。

我尝试过使用 SpEL,类似于

@Cacheable(condition="@someBean.isSomeBoolean()")

这需要一个我没有配置的 BeanResolver。我可以以编程方式创建其中之一,但是如何配置我有可缓存方法的类来引用它?我当前收到的错误是:

No bean resolver registered in the context to resolve access to bean 

有一个类似的帖子here谈论的是关键,而不是条件。

有人成功地在缓存注释中引用其他bean吗?

最佳答案

假设你的类中的 Autowiring bean中有someBean,你可以使用被调用的对象target来获取它,试试这个

@Cacheable(condition="target.someBean.isSomeBoolean()")

关于java - Spring 缓存 - 如何在 SPEL 中引用 bean 以通过 @Cacheable 启用条件缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813006/

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