正如here和官方文档本身所描述的:unwrapSingleInstance
属性允许我们在解组时建立 “,如果单个示例被解包并返回,而不是 Package 在java.util.List” 中。
但是,Sping Boot 的camel.dataformat.bindy-csv.unwrap-single-instance
auto-configuration属性对文档示例没有影响:
BindyCsvDataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);
from("file://inbox")
.unmarshal(bindy)
.to("direct:handleOrders");
字符串
上面的示例仅通过直接在代码中以这种方式设置属性才能工作:
bindy.setUnwrapSingleInstance(false);
型
我猜这是因为new BindyCsvDataFormat
对象不是由Spring管理的,所以我如何才能让Spring创建和管理它,以便在Apache Camel中自动配置?
我尝试在Spring中创建一个常规bean,并在unmarshal
中设置引用,自动配置也没有效果:
@Bean
public DataFormat bindyCsvDataFormat() {
return new BindyCsvDataFormat(com.acme.model.MyModel.class);
}
from("file://inbox")
.unmarshal("bindyCsvDataFormat")
.to("direct:handleOrders");
型
我在pom.xml
和Apache Camel版本3.20.5
中有这个依赖:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-bindy-starter</artifactId>
</dependency>
型
1条答案
按热度按时间yzuktlbb1#
看看下面两个类:
https://github.com/apache/camel-spring-boot/tree/main/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot
正如您将看到的,Camel将“自动挂载”几个面向Bindy的类,以便在Spring( Boot )示例化bindy组件时自动连接它们。
在这种情况下,您当然不应该使用vanilla构造函数(例如
new BindyCsvDataFormat
)创建bean。