スポンサーリンク

Gradle/SpringBootでModelMapperを使用する方法

ライブラリの設定とコンフィグ設定

build.gradle

下記を追記する。

dependencies {
	implementation 'org.modelmapper:modelmapper:2.3.0'
}

@Configurationクラス作成

既存の@Configurationクラスに@Bean以下を追加する、または新規の@Configurationクラスを作成する。

@Configuration
public class ApplicationConfig {
    @Bean
    public ModelMapper modelMapper(){
        ModelMapper modelMapper = new ModelMapper();
        return modelMapper;
    }
}

@Configurationクラスを作成しないと、SpringBoot起動時にModelMapperを@Autowiredできないというエラーになるので、必ず必要です。

使用する例

    @Autowired private ModelMapper modelMapper;

    @PostMapping
    public PostResponse post(@RequestBody PostRequest request) {
        MBook mBook = modelMapper.map(request, MBook.class);
        MBook registered = bookService.register(mBook);
        PostResponse response = modelMapper.map(registered, PostResponse.class);
        return response;
    }

@AutowiredをつけたModelMapperクラスのフィールドを宣言する。

mapメソッドを呼ぶ。第1引数にコピー元、第2引数にコピー先を指定する。コピー先を生成したければ、クラス名で指定する。

なぜModelMapperが必要なのか?

一般的な3層構造では層を分離することで、疎結合にし、保守性を高める狙いがあります。このとき、層の間で値の受け渡しが必ず発生します。

値の受け渡しは必要ですが、本質的に業務とは関係ない行為なので、コード行数を削減してコードの見通しをよくしたいところ。

そこで、ModelMapperの様なライブラリが活躍してくれます。

スポンサーリンク

投稿日:

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.