Saya mencoba untuk mengubah DO ke DTO menggunakan java dan mencari alat otomatis sebelum mulai menulis sendiri. Saya hanya ingin tahu apakah ada alat gratis yang tersedia untuk hal yang sama.
Saya mencoba untuk mengubah DO ke DTO menggunakan java dan mencari alat otomatis sebelum mulai menulis sendiri. Saya hanya ingin tahu apakah ada alat gratis yang tersedia untuk hal yang sama.
Jawaban:
Anda bisa mencoba Dozer .
Dozer adalah mapper Java Bean ke Java Bean yang secara rekursif menyalin data dari satu objek ke objek lainnya. Biasanya, Java Beans ini terdiri dari berbagai jenis kompleks.
Dozer mendukung pemetaan properti sederhana, pemetaan tipe kompleks, pemetaan dua arah, pemetaan implisit-eksplisit, serta pemetaan rekursif. Ini termasuk memetakan atribut koleksi yang juga membutuhkan pemetaan di tingkat elemen.
Ada beberapa perpustakaan di sana:
Commons-BeanUtils : ConvertUtils -> Metode utilitas untuk mengubah nilai skalar String ke objek Kelas yang ditentukan, String array ke array dari Kelas yang ditentukan.
Commons-Lang : ArrayUtils -> Operasi pada array, array primitif (seperti int []) dan array pembungkus primitif (seperti Integer []).
Kerangka pegas : Pegas memiliki dukungan yang sangat baik untuk PropertyEditors, yang juga dapat digunakan untuk mengubah Objek ke / dari Strings.
Dozer : Dozer adalah mapper Java Bean to Java Bean yang kuat namun sederhana yang secara rekursif menyalin data dari satu objek ke objek lainnya. Biasanya, Java Beans ini terdiri dari berbagai jenis kompleks.
ModelMapper : ModelMapper adalah kerangka pemetaan objek cerdas yang secara otomatis memetakan objek satu sama lain. Ia menggunakan pendekatan berbasis konvensi untuk memetakan objek sambil menyediakan API aman refactoring sederhana untuk menangani kasus penggunaan tertentu.
MapStruct : MapStruct adalah generator kode kompilasi-waktu untuk pemetaan kacang, menghasilkan cepat (tidak ada penggunaan refleksi atau serupa), kode pemetaan dependensi-kurang dan jenis-aman saat runtime.
Orika : Orika menggunakan pembuatan kode byte untuk membuat pemetaan cepat dengan overhead yang minimal.
Selma : Kompilasi kode-generator waktu untuk pemetaan
JMapper : Pembuatan bean mapper menggunakan Annotation, XML atau API (tampaknya mati, terakhir diperbarui 2 tahun yang lalu)
Smooks : The Smooks JavaBean Cartridge memungkinkan Anda untuk membuat dan mengisi objek Java dari data pesan Anda (yaitu, ikat data ke) (disarankan oleh superfilin dalam komentar). (Tidak lagi dalam pengembangan aktif)
Commons-Convert : Commons-Convert bertujuan untuk menyediakan pustaka tunggal yang didedikasikan untuk tugas mengkonversi objek dari satu jenis ke yang lain. Tahap pertama akan fokus pada konversi Object to String dan String to Object. (tampaknya mati, pembaruan terakhir 2010)
Transmorph : Transmorph adalah pustaka java gratis yang digunakan untuk mengubah objek Java dari satu tipe menjadi objek dari tipe lain (dengan tanda tangan lain, mungkin parameter). (tampaknya mati, pembaruan terakhir 2013)
EZMorph : EZMorph adalah pustaka java sederhana untuk mengubah Objek ke Objek lain. Ini mendukung transformasi untuk primitif dan Objek, untuk array multidimensi dan transformasi dengan DynaBeans (tampaknya sudah mati, terakhir diperbarui 2008)
Morph : Morph adalah kerangka kerja Java yang memudahkan interoperabilitas internal suatu aplikasi. Ketika informasi mengalir melalui aplikasi, ia mengalami banyak transformasi. Morph menyediakan cara standar untuk mengimplementasikan transformasi ini. (tampaknya mati, pembaruan terakhir 2008)
Lorentz : Lorentz adalah kerangka kerja konversi objek-ke-objek umum. Ini menyediakan API sederhana untuk mengkonversi objek Java dari satu jenis menjadi objek dari jenis lain. (sepertinya mati)
OTOM : Dengan OTOM, Anda dapat menyalin data apa pun dari objek apa pun ke objek lain. Kemungkinannya tidak terbatas. Selamat datang di "Musim Gugur". (sepertinya mati)
Satu lagi adalah Orika - https://github.com/orika-mapper/orika
Orika adalah kerangka pemetaan Java Bean yang secara rekursif menyalin (di antara kemampuan lain) data dari satu objek ke objek lainnya. Ini bisa sangat berguna ketika mengembangkan aplikasi berlapis-lapis.
Orika berfokus pada mengotomatisasi sebanyak mungkin, sambil memberikan penyesuaian melalui konfigurasi dan ekstensi jika diperlukan.
Orika memungkinkan pengembang untuk:
- Peta objek yang kompleks dan sangat terstruktur
- "Ratakan" atau "Bentangkan" objek dengan memetakan properti bersarang ke properti tingkat atas, dan sebaliknya
- Buat pemetaan saat dalam perjalanan, dan terapkan penyesuaian untuk mengontrol sebagian atau semua pemetaan
- Buat konverter untuk kontrol penuh atas pemetaan set objek tertentu di mana saja dalam grafik objek - berdasarkan jenis, atau bahkan dengan nama properti tertentu
- Menangani proksi atau objek yang ditingkatkan (seperti yang dimiliki Hibernate, atau berbagai kerangka kerja tiruan)
- Terapkan pemetaan dua arah dengan satu konfigurasi
- Peta ke instance kelas konkret yang sesuai untuk kelas atau antarmuka abstrak target
- Tangani pemetaan terbalik
- Menangani konvensi kompleks di luar spesifikasi JavaBean.
Orika menggunakan pembuatan kode byte untuk membuat pemetaan cepat dengan overhead yang minimal.
ModelMapper adalah perpustakaan lain yang patut dilihat. Desain ModelMapper berbeda dari perpustakaan lain dalam hal itu:
Lihatlah situs ModelMapper untuk info lebih lanjut:
Gunakan Apache commons beanutils:
static void copyProperties(Object dest, Object orig)
-Salin nilai properti dari kacang asal ke kacang tujuan untuk semua kasus di mana nama properti sama.
Ada satu lagi mesin pemetaan Java / kerangka kerja Nomin: http://nomin.sourceforge.net .
Saya sarankan Anda mencoba JMapper Framework .
Ini adalah Java bean to Java bean mapper, memungkinkan Anda untuk melakukan petikan data secara dinamis dengan anotasi dan / atau XML.
Dengan JMapper Anda dapat:
Saya senang menambahkan Moo sebagai opsi, meskipun jelas saya bias terhadapnya: http://geoffreywiseman.github.com/Moo/
Ini sangat mudah digunakan untuk kasus-kasus sederhana, cukup masuk akal untuk kasus-kasus yang lebih kompleks, walaupun masih ada beberapa area di mana saya bisa membayangkan memperbaikinya untuk kompleksitas yang lebih jauh.
Anda juga dapat mencoba kerangka pemetaan berdasarkan Dozer, tetapi dengan deklarasi pemetaan Excel. Mereka punya beberapa alat dan fitur keren tambahan. Periksa di http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
. Jackson juga memiliki dukungan untuk anotasi dan anotasi-mixin jadi saya merasa ini pilihan yang sangat bagus.