作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个方法,我想根据对另一个 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/
我是一名优秀的程序员,十分优秀!