ApacheCamel:使用类的多参数构造函数实例化类



如何在类对象上调用方法,首先使用Spring DSL和bean绑定,在Camel路由中用其多参数构造函数对其进行实例化?

例如这个:

package org.my.package;
public class SomeClass {
public SomeClass() {}
public SomeClass(String param1, String param2) {
...
}
public void doSomething() {
}
}

使用默认(无参数(构造函数的方法调用是明确的:

<to uri="bean:org.my.package.SomeClass?method=doSomething" />

只能使用默认的无参数构造函数实例化类实例。但是您可以将bean属性用于集合类字段。

Bean

<bean class="org.my.pack.SomeClass" factor:bean-type="DEFAULT"
id="SomeClass" name="SomeClass">
<property name="param1" value="Value1"/>
<property name="param2" value="Value2"/>
</bean>

package org.my.pack;
public class SomeClass {
public String param1;
public String param2;
public String getParam1() {
return param1;
}
public void setParam1(String param1) {
this.param1 = param1;
}
public String getParam2() {
return param2;
}
public void setParam2(String param2) {
this.param2 = param2;
}
public String doSomething() {
return "Param1 - " + param1 + " Param2 - " + param2;
}
public static void main(String[] args) {
}
}

或者,您也可以对方法参数使用注释,并从头中获取值,例如(https://camel.apache.org/manual/latest/parameter-binding-annotations.html)

public String doSomething(@Header("param1") String param1,   @Header("param2") String param2) {
return "Param1 - " + param1 + " Param2 - " + param2;
}

相关内容

最新更新