这是绕过Camel的解决方案:
由于您自己实例化bean并且不依赖于spring来管理它,因此您可以通过构造函数传递Shape实现.
在DemoRoute类中添加一个Shape字段:
public class DemoRoute {
private final Shape shape;
public DemoRoute(Shape shape) {
this.shape = shape;
}
// test method that uses shape
}
在Route配置类中,配置如下:
@Component
public class CustomRoute extends RouteBuilder {
private final Square square;
private final Circle circle;
CustomRoute(Square square, Circle circle){
this.square = square;
this.circle = circle;
}
@Override
public void configure() throws Exception {
from("direct:myRoute1")
.bean(new DemoRoute(circle), "test(Demo,xxx)")
.end();
from("direct:myRoute2")
.bean(new DemoRoute(square), "test(Demo,xxx)")
.end();
}
}