2
我正在使用Grails和路由插件来使用RouteBuilder DSL来定义路由。RouteBuilder.onException是否创建全局异常处理程序或路由特定的异常处理程序?
如果我有像下面这样的场景:
...
//configure method for route builder A
def configure {
onException(CustomException).process(exceptionProcessor)
from(<route A.1>)...
from(<route A.2>)...
}
...
...
//configure method for route builder B
def configure {
onException(CustomException).process(exceptionProcessor)
from(<route B.1>)...
}
...
在这种情况下,不onException(CustomException).process(exceptionProcessor)
定义涵盖路线A.1,A.2和B.1呢,还是一个全球性的异常处理程序定义只包含在同一RouteBuilder内配置的路由的路由特定异常处理程序(即A.1和A.2)?
是的,这是正确的。如果你想跨越多个RouteBuilder类,你需要创建一个基类来扩展,并调用super.configure()。例如使用OO继承。在Camel 3.x中,我们可能会考虑在Java DSL中使其成为全局“全局”的方式。 –