使用应用程序属性的 @Cacheable 条件

2024-07-01

我正在尝试将 Redis 与 Spring 一起使用@Cacheable但需要根据 Spring Boot 样式应用程序属性有条件地打开或关闭缓存。我的第一次尝试似乎不起作用。

application.properties 文件:

auth.token-cache-enabled=false

属性类:

@Component
@ConfigurationProperties(prefix = "auth")
public class AuthProperties {
    public boolean tokenCacheEnabled;
    ...
}

服务方法注释:

@Cacheable(key = "#token", condition = "@authProperties.tokenCacheEnabled()")

结果是:

org.springframework.expression.spel.SpelEvaluationException: EL1057E:(pos 1): No bean resolver registered in the context to resolve access to bean 'authProperties' at org.springframework.expression.spel.ast.BeanReference.getValueInternal(BeanReference.java:48)

有谁知道问题是什么或者是否有其他方法可以实现这一目标?


我找到了一种方法可以在我的情况下完成这项工作,但我还发现了一个我认为是同一问题的错误票:https://jira.spring.io/browse/SPR-13812 https://jira.spring.io/browse/SPR-13812

我的解决方法是@Inject my AuthProperties进入包含我要缓存的方法的服务。接下来,我将该方法的缓存条件更改为:

    @Cacheable(key = "#token", condition = "#root.target.authProperties.tokenCacheEnabled")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用应用程序属性的 @Cacheable 条件 的相关文章

随机推荐

  • 客户端了解 Twilio 功能令牌何时过期的好方法

    Question 客户端应用程序了解其 Twilio 功能令牌何时过期的好方法是什么 更多信息 就我而言 客户端应用程序是在 Web 浏览器内运行的 Javascript 应用程序 我之所以问这个问题 是因为我想确保客户端应用程序 在 We
  • 我可以在 javascript 中使用 php 吗?

    初学者的问题 我可以在 JavaScript 中使用 PHP 吗 例如在 jquery 中 triggers eq 1 post PHP 在服务器端执行 JavaScript 在客户端执行 但是你可以像这样打印 PHP 变量 trigger
  • Scikit-learn 中的 GridSearchCV 输出问题

    我想执行超参数搜索以在 sklearn 中选择预处理步骤和模型 如下所示 pipeline Pipeline combiner PolynomialFeatures dimred PCA classifier RandomForestCla
  • 如何使用复制器 API 复制页面及其所有子页面?

    这是我复制页面的代码 final String pagePath blogEntryPage getPath final Resource jcrContent blogEntryPage getContentResource final
  • 设置ntlk代理

    我正在关注第一章NLTK书 http www nltk org book ch01 html frequency distributions 它要求我们通过运行来安装图书语料库nltk dowwnload 我正进入 状态getattrinf
  • iOS 7 UITableView didSelectRowAtIndexPath 以编程方式推送ViewController,动画问题

    编辑 我找到了我自己问题的答案 请看我帖子的底部 我在尝试推动时遇到动画问题UIViewController in didSelectRowAtIndexPath on a UITableView以编程方式 当我在 iOS 6 中运行此代码
  • 除非选择单选按钮,否则如何使复选框变灰?

    对于 javascript 来说非常陌生 但是任何帮助我入门的帮助将不胜感激 我有一个简单的表格 div div
  • AngularJS 和摘要式 HTTP 身份验证

    我正在尝试以角度实现摘要身份验证算法 然而 由于缺乏对 Angular 将发送的请求的了解 我无法实现该目标 我的方法是通过以下方式转换请求 httpProvider defaults transformRequest 路线 但是我提供的功
  • C 中的 const 和指针

    将 const 与指针一起使用可能会导致指针对象无法通过使用相关指针取消引用来修改 但为什么我也不能修改指针不直接指向的内容呢 例如 int a 3 const int ptr a ptr 5 不会编译 但为什么 ptr 2 5 还编译不了
  • 将数组插入postgresql

    我想将 id 数组插入到文件中 但在创建我使用的表时int 并且它具有另一个表的引用 现在如何将数组值存储到特定字段 我知道列必须是相同的类型 而且我还看到有些人已经尝试解决数组问题上的外键 我也根据这个文档尝试过 ELEMENT 但没有成
  • 如何转义 Oracle 中的保留字?

    在 TSQL 中我可以使用类似的东西Select table from tablename选择名为 table 的列 如何对 oracle 中的保留字执行此操作 编辑 我尝试过方括号 双引号 单引号和反引号 它们不起作用 作为进一步澄清 我
  • will_paginate 可以按天排序吗

    设想 我有一个包含数百张照片的图片表 我目前正在使用 will paginate 对每页 100 张照片进行分页 我想继续使用 will paginate 但我希望分页由日期驱动 我已经尝试使用以下方法sort by但我认为这不起作用 pi
  • 如何获取给定 IP 地址的以太网端口?

    我正在尝试编写一个 bash 脚本来获取我知道其 IP 地址的接口的以太网端口 我需要从 ifconfig 获取这个 但似乎无法弄清楚如何去做 有任何想法吗 Thanks 将 127 0 0 1 替换为您要获取其接口信息的 IP 地址 if
  • SharePoint 中的内部名称编码

    这是众所周知的知识 x0020 替换 SharePoint 内部字段名称中的空格 使用 SharePoint Web 服务时 这可能有点像一场噩梦 除非您在比较字段名称时编写替换规则 我刚刚在 SSL2 领域发现了另一个 编码异常 奇怪的是
  • Xcode 4.3.2 足以为 iOS 6 构建应用程序吗?

    在今天宣布 iOS 6 Beta 可供开发人员使用之后 我想知道如果我尽快使用 iOS 6 我是否仍然能够在我的设备 iPhone 上从 Xcode 4 3 2 构建正在进行的应用程序 或者 Xcode 也需要更新吗 更新 目前我的 iPh
  • 如何在 Bean Validation 中设置区域设置

    默认情况下 Bean Validation 是根据 Locale getDefault 获取 Locale 的 这对于整个 JVM 是通用的 如何更改当前 EJB 方法调用的 BeanValidation 的区域设置 我正在使用 JavaE
  • 如何在 pywebview 中使无框窗口可拖动?

    我最近一直在使用 pywebview 和 Flask 来开发桌面应用程序 我想使用无框窗口功能并创建自己的标题栏 但问题是我不知道如何使该无框窗口可拖动 文档说它可以通过拖动任何点来移动 但对我来说情况并非如此 有任何想法吗 拖动区域 ht
  • 使用 pip freeze 安装 numpy

    I need to install Numpy version 1 17 1 but every time it just freezes I have now tried multiple times and I have been wa
  • 如何获取 Angular 5 组件元素的位置?

    在 5 角分量中 我有一个table 我需要创建一些类似叠加多个div上面几个td的 获得这些职位的最佳方法是什么td位于表格中 以便我可以放置其他元素 我目前正在尝试使用类似的东西 ViewChild table tableElement
  • 使用应用程序属性的 @Cacheable 条件

    我正在尝试将 Redis 与 Spring 一起使用 Cacheable但需要根据 Spring Boot 样式应用程序属性有条件地打开或关闭缓存 我的第一次尝试似乎不起作用 application properties 文件 auth t