Apache camel ApacheCamel:使用多参数构造函数实例化一个类

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() { } }

如何首先使用SpringDSL和bean绑定,在驼峰路径中使用多参数构造函数实例化类对象上的方法

例如,这个:

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;
}