40.5. MapStruct のセットアップ
camel-mapstruct コンポーネントは、クラスパススキャン MapStruct Mapper
クラスのために、1 つ以上のパッケージ名で設定する必要があります。これが必要なのは、Mapper
クラスが MapStruct で POJO を変換するために使用されるためです。
たとえば、2 つのパッケージをセットアップするには、次のようにします。
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 は起動時にこれらのパッケージをスキャンして、名前が Mapper
で終わるクラスを探します。次に、これらのクラスをイントロスペクトして、マッピングメソッドを検出します。これらのマッピングメソッドは、Camel レジストリーに登録されます。これは、型コンバーターを使用して、次のように MapStruct で POJO を変換することもできることを意味します。
from("direct:foo") .convertBodyTo(MyFooDto.class);
from("direct:foo")
.convertBodyTo(MyFooDto.class);
MyFooDto
は、MapStruct が変換できる POJO です。