Camel Bindy:提供 class 在 spring.xml 中使用
Camel Bindy: providing the class to use in spring.xml
我确定我错过了一些非常明显的东西,但还没有解决。
我们使用 bindy 将 CSV 文件提取到 POJO 中。这一直很好用。我们已经获得了一些要加载的 CSV 文件。这是我发现问题的地方。如果您进行包扫描,Bindy 不允许多个 class 具有 @CsvRecord
注释的包存在于同一个包中。但这没关系,因为我们使用的是 camel 2.13.3,我可以看到 BindyCsvDataFormat
的构造函数允许我们传入 class。
我遇到的麻烦是,我们使用 spring.xml
来设置 camel
。我似乎无法让 BindyCsvDataFormat
使用 class 构造函数。它只会使用进行包扫描的那个。
<bean id="bindyDataformat" class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat">
<constructor-arg value="com.something.package.Model.class" />
</bean>
以上方法无效。我怀疑我将字符串作为 constructor-arg
传递,因此始终调用字符串构造函数。
有没有办法让 BindyCsvDataFormat
不进行包扫描并允许我提供 class 我希望将 csv 数据解组到 spring.xml
?
您尝试做的不是 bindy 特有的。这是一个常见问题,您需要通过 Spring DI.
注入 Class
的 "value"
这里有一个 link 描述了如何正确传递 class 参数:
pass "HardCoded" Constructor Arg Class<T> to bean via Spring Config
我确定我错过了一些非常明显的东西,但还没有解决。
我们使用 bindy 将 CSV 文件提取到 POJO 中。这一直很好用。我们已经获得了一些要加载的 CSV 文件。这是我发现问题的地方。如果您进行包扫描,Bindy 不允许多个 class 具有 @CsvRecord
注释的包存在于同一个包中。但这没关系,因为我们使用的是 camel 2.13.3,我可以看到 BindyCsvDataFormat
的构造函数允许我们传入 class。
我遇到的麻烦是,我们使用 spring.xml
来设置 camel
。我似乎无法让 BindyCsvDataFormat
使用 class 构造函数。它只会使用进行包扫描的那个。
<bean id="bindyDataformat" class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat">
<constructor-arg value="com.something.package.Model.class" />
</bean>
以上方法无效。我怀疑我将字符串作为 constructor-arg
传递,因此始终调用字符串构造函数。
有没有办法让 BindyCsvDataFormat
不进行包扫描并允许我提供 class 我希望将 csv 数据解组到 spring.xml
?
您尝试做的不是 bindy 特有的。这是一个常见问题,您需要通过 Spring DI.
注入Class
的 "value"
这里有一个 link 描述了如何正确传递 class 参数:
pass "HardCoded" Constructor Arg Class<T> to bean via Spring Config