gpt4 book ai didi

java - 在 Spring 表达式语言 (SpEL) 中评估属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:25 24 4
gpt4 key购买 nike

我们的服务有一个根据属性文件调度的进程,读取属性 refreshIntervalMillis。它的值直接注入(inject)到具有此配置的 Quartz 触发器中:

<bean name="trigger"
class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean "
p:repeatInterval="${refreshIntervalMillis}">
...
</bean>

但是,安装此服务的管理员以小时/天为单位进行思考,因此为了让他们更轻松,我们将其更改为:

  1. refreshIntervalMillis 重命名为 refreshIntervalMinutes
  2. 将上面的代码更改为以下内容:
p:repeatInterval="#{ 1000 * 60 * T(java.lang.Integer).valueOf(@configurationProperties['garbageLevelWatcher.refreshIntervalMinutes'])}"

注意:属性对象被公开为一个名为“configurationProperties”的 bean

是否有更简单的语法来实现相同的目的?

谢谢,

最佳答案

“#{T(java.util.concurrent.TimeUnit).MINUTES.toMillis(@configurationProperties['garbageLevelWatcher.refreshIntervalMinutes'])}”

编辑:

或者...

<context:property-placeholder properties-ref="configurationProperties"
<util:constant id = "MINUTES" static-field="java.util.concurrent.TimeUnit.MINUTES" />

"#{@MINUTES.toMillis(${garbageLevelWatcher.refreshIntervalMinutes})}"

关于java - 在 Spring 表达式语言 (SpEL) 中评估属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15510563/

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