java - 在 apache camel 上下文中存储状态的最佳方式

标签 java spring apache-camel

我需要保留一个字符串值,该值每小时更改一次,并由路由获取以供其他路由使用。我正在使用 Spring XML DSL。

我已经让它工作得很好,但它看起来很笨拙。我有一个带有 setter 和 getter 的 java 类来包装字符串,我将其设置为:

<to uri="bean:store?method=setValue"/>

然后通过另一条路线将其送回体内:

<to uri="bean:store?method=getValue"/>

是否有一种纯 Spring 方法可以在 xml 中执行此操作而不需要定制的 java 类?

最佳答案

您有多种选择:

  1. 使用缓存组件,如 Apache Ignite、EhCache 等。尽管对于像您这样的简单场景,这矫枉过正。我不推荐它。
  2. 使用 JDK AtomicReference作为你的 bean,而不是创建一个专门用于存储的类。
    • 调用set存储值的方法。
    • 调用get恢复值(value)。

显然,您不会删除存储/获取值的路径中的步骤,但您可以取消自定义类。

关于java - 在 apache camel 上下文中存储状态的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35338330/

相关文章:

java - Swing 绘制网格。奇怪的结果

java - 如何从 Spring Controller 创建文件保存对话框?

spring - 应用程序在 jdbcTemplate 中随机挂起以进行更新

java - 如何在没有 spring @Component 或 @Bean 注释的情况下在我的项目中运行不同项目的 servlet-filter

jboss - Camel 应用程序在关闭 session 后尝试使用 JMS session

java - 用户通过 orElseThrow 方法定义的异常

java - 在另一台未配置的计算机上运行 selenium webdriver 测试

java - java中的砖 block 碰撞突破

apache-camel - 在 Apache Camel 路由中获取之前的消息

apache-camel - Apache Camel : Accessing CamelLoopIndex