51.8. 例子
将键/值放在命名缓存中:
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) (1) .setHeader(InfinispanConstants.KEY).constant("123") (2) .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); (3)
- 设置要执行的操作
- 设置用于识别缓存中元素的密钥
使用 registry 中的配置的缓存管理器
cacheContainer
将元素放在名为myCacheName
的缓存中可以在条目过期前配置生命周期和/或闲置时间,并从缓存中驱除,例如:
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET) .setHeader(InfinispanConstants.KEY).constant("123") .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) (1) .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) (2) .to("infinispan:myCacheName");
- 设置条目的寿命
- 设置生命周期的时间单位
查询
from("direct:start") .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY) .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() { @Override public Query build(QueryFactory<Query> qf) { return qf.from(User.class).having("name").like("%abc%").build(); } }) .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
自定义 Listeners
from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener") .to("mock:result");
-
myCustomListener
的实例必须存在,Camel 应能够从Registry
中查找它。我们鼓励用户扩展org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener
类,并使用@Listener
注解生成的类,它们可在软件包org.infinispan.notifications
中找到。
-