Apache camel ApacheCamel:使用多参数构造函数实例化一个类
如何首先使用SpringDSL和bean绑定,在驼峰路径中使用多参数构造函数实例化类对象上的方法 例如,这个:Apache camel ApacheCamel:使用多参数构造函数实例化一个类,apache-camel,spring-camel,Apache Camel,Spring Camel,如何首先使用SpringDSL和bean绑定,在驼峰路径中使用多参数构造函数实例化类对象上的方法 例如,这个: package org.my.package; public class SomeClass { public SomeClass() {} public SomeClass(String param1, String param2) { ... } public void doSomething() { } }
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属性 豆子 或者,您也可以对方法参数使用注释,并从标题中获取值,例如()
为什么不通过Spring创建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) {
}
}
public String doSomething(@Header("param1") String param1, @Header("param2") String param2) {
return "Param1 - " + param1 + " Param2 - " + param2;
}