262.27. 使用自定义功能
可从 Camel 2.14.1 开始
Properties 组件允许插件第三方功能,在解析属性占位符时使用。然后,这些函数能够执行自定义逻辑来解析占位符,如在数据库中查找、执行自定义计算或不用。函数的名称成为占位符中使用的前缀。这在以下示例代码中给出了最佳说明
注意
来自 camel 2.19.0,位置属性(on propertyPlaceholder)并不是更强制的
在这里,我们有一个 Camel XML 路由,其中定义了 & lt;propertyPlaceholder
> 以使用自定义功能,我们称为 bean id - 也就是 beerFunction
。由于er 函数使用 "beer"
作为其名称,因此占位符语法可以通过以 beer:value
开始来触发 beer 函数。
这个功能的实现只有两种方法,如下所示:
该函数必须实施 org.apache.camel.component.properties.PropertiesFunction
接口。method getName
是函数的名称,eg beer。应用
方法是我们实施自定义逻辑。由于示例代码来自单元测试,它只是返回一个值以引用模拟端点。
要从 Java 代码中注册自定义功能,如下所示:
PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class); pc.addFunction(new MyBeerFunction());
PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
pc.addFunction(new MyBeerFunction());