Bagaimana cara membuat model komponen khusus untuk MapStruct?

MapStruct menyediakan model komponen untuk membuat konverter. Namun, konverter ini dihasilkan seperti komponen pegas independen. Apakah ada cara untuk "memasukkannya" ke dalam Layanan Konversi?

Berikut adalah contoh menambahkan konverter Spring ke layanan konversi. Apakah ada cara untuk membuat model komponen khusus yang menggunakan CoversionServiceAwareConverter sebagai kelas super?


person Cherry    schedule 17.03.2016    source sumber


Jawaban (1)


Kami belum memeriksa layanan konversi Spring, jadi tidak ada dukungan untuk layanan ini yang disediakan secara langsung.

Anda tidak dapat membuat model komponen khusus atm., tetapi tidak bisakah Anda mendaftarkan pembuat peta yang dihasilkan secara manual ke layanan konversi?

person Gunnar    schedule 17.03.2016
comment
Meskipun demikian, saya akan sangat tertarik dengan temuan apa pun di pihak Anda, jika ternyata ada yang dapat dilakukan di sisi MapStruct untuk mendukung kasus penggunaan ini, saya akan bersedia membantu dalam hal ini. - person Gunnar; 17.03.2016
comment
tetapi tidak bisakah Anda mendaftarkan pembuat peta yang dihasilkan secara manual - ya, saya bisa. Tapi itu mengarah ke metode beranotasi xml atau @Bean yang sangat panjang. Jadi menambahkan anotasi postconstruct dengan menambahkan ConversionService akan menguranginya banyak. - person Cherry; 18.03.2016
comment
Perhatikan bahwa saat menggunakan layanan konversi bersama dengan mapstruct Anda mendapatkan yang terbaik dari 2 dunia: hindari menulis konverter dengan tangan (mapstruct) dan kurangi ketergantungan konverter (pegas). Jadi fungsi seperti itu akan sangat bagus. - person Cherry; 18.03.2016
comment
Saya tidak sepenuhnya yakin apa yang Anda maksud dengan mengurangi ketergantungan konverter; Bekerja dengan antarmuka yang diketik adalah salah satu keunggulan MapStruct, kontrak umum ConversionService kehilangan hal itu. Jika Anda mau, buka permintaan fitur di github.com/mapstruct/mapstruct/issues dan kami bisa membahasnya lebih detail disana. - person Gunnar; 18.03.2016