Camel 的 Bean 组件将方法名称作为字符串,在运行时用于调用该方法。
from("direct:start")
.bean(contactDao, "getContactById")
但是,与Java相比,这很糟糕,Java在编译时链接方法本身,因此在编译时本身检测到任何错误。
在 Camel 中,在运行时触发该流之前,不会捕获 Bean 方法调用的任何错误。
是否有任何安全措施可以避免这种情况?
使用
org.apache.camel.Processor
而不是 bean,或者从编写 Java 代码的Processor
调用 bean,可以直接调用该方法(而不是作为字符串名称)。