89.6. 设置 MapStruct
camel-mapstruct 组件必须配置有一个或多个软件包名称,用于 classpath 扫描 MapStruct Mapper 类。这是必要的,因为映射类将用于使用 MapStruct 转换 POJO。
例如,要设置两个软件包,您可以执行以下操作:
MapstructComponent mc = context.getComponent("mapstruct", MapstructComponent.class);
mc.setMapperPackageName("com.foo.mapper,com.bar.mapper");
MapstructComponent mc = context.getComponent("mapstruct", MapstructComponent.class);
mc.setMapperPackageName("com.foo.mapper,com.bar.mapper");
这也可以在 application.properties 中配置:
camel.component.mapstruct.mapper-package-name = com.foo.mapper,com.bar.mapper
camel.component.mapstruct.mapper-package-name = com.foo.mapper,com.bar.mapper
Camel 将在启动时扫描这些软件包以 映射程序 结尾的类。这些类随后被内省,以发现映射方法。这些映射方法随后被注册到 Camel registry 中。这意味着,您也可以使用类型转换器将 POJOs 与 MapStruct 一起使用,例如:
from("direct:foo")
.convertBodyTo(MyFooDto.class);
from("direct:foo")
.convertBodyTo(MyFooDto.class);
其中 MyFooDto 是一个 POJO,mapStruct 能够转换到/从其中。