Java kullanarak DTO dönüştürmek için çalışıyorum ve kendi yazmaya başlamadan önce otomatik bir araç arıyorum. Ben sadece aynı için kullanılabilir herhangi bir ücretsiz araç olup olmadığını bilmek istedim.
Java kullanarak DTO dönüştürmek için çalışıyorum ve kendi yazmaya başlamadan önce otomatik bir araç arıyorum. Ben sadece aynı için kullanılabilir herhangi bir ücretsiz araç olup olmadığını bilmek istedim.
Yanıtlar:
Dozer'i deneyebilirsin .
Dozer, verileri bir nesneden diğerine özyinelemeli olarak kopyalayan bir Java Bean - Java Bean eşleştiricisidir. Genellikle, bu Java Fasulyeleri farklı karmaşık tiplerde olacaktır.
Dozer, basit özellik eşleme, karmaşık tip eşleme, çift yönlü eşleme, örtük-açık eşleme ve özyinelemeli eşlemeyi destekler. Buna öğe düzeyinde eşleme gerektiren eşleme toplama öznitelikleri de dahildir.
Orada bazı kütüphaneler var:
Commons-BeanUtils : ConvertUtils -> Dize skaler değerlerini belirtilen Sınıfın nesnelerine, Dize dizilerini belirtilen Sınıfın dizilerine dönüştürmek için yardımcı yöntemler.
Commons-Lang : ArrayUtils -> Diziler, ilkel diziler (int [] gibi) ve ilkel sarma dizileri (Integer [] gibi) işlemleri.
Yay çerçevesi : Yay, Nesneleri Dizelere / Dizelerden dönüştürmek için de kullanılabilen PropertyEditors için mükemmel bir desteğe sahiptir.
Dozer : Dozer, verileri bir nesneden diğerine özyinelemeli olarak kopyalayan güçlü, ancak basit bir Java Bean'den Java Bean eşleştiricisidir. Tipik olarak, bu Java Fasulyeleri farklı karmaşık tiplerde olacaktır.
ModelMapper : ModelMapper, nesneleri otomatik olarak birbirleriyle eşleştiren akıllı bir nesne eşleme çerçevesidir. Belirli kullanım durumlarını ele almak için basit bir yeniden düzenleme güvenli API sağlarken, nesneleri eşleştirmek için kural tabanlı bir yaklaşım kullanır.
MapStruct : MapStruct, fasulye eşlemeleri için derleme zamanı kod üretecidir ve çalışma zamanında hızlı (yansıma veya benzeri kullanılmaz), bağımlılık gerektirmeyen ve tür güvenli haritalama kodu ile sonuçlanır.
Orika : Orika, minimum ek yüke sahip hızlı eşleyiciler oluşturmak için bayt kodu oluşturma özelliğini kullanır.
Selma : Eşlemeler için derleme zamanı kod üreticisi
JMapper : Ek Açıklama, XML veya API kullanarak fasulye eşleyici oluşturma (ölü görünüyor, en son 2 yıl önce güncellendi)
Smooks : Smooks JavaBean Kartuşu, mesaj verilerinizden Java nesnelerini oluşturmanıza ve doldurmanıza olanak sağlar (yani verileri buraya bağla) ( yorumlarda süperfilin tarafından önerilir ).(Artık aktif geliştirme aşamasında değil)
Commons-Convert : Commons-Convert, bir türdeki bir nesneyi diğerine dönüştürme görevine adanmış tek bir kütüphane sağlamayı amaçlamaktadır. İlk aşama Nesneden Dizeye ve Dizeden Nesneye dönüşümlere odaklanacaktır. (ölü gibi görünüyor, son güncelleme 2010)
Transmorph : Transmorph, bir türdeki bir Java nesnesini başka bir türün nesnesine dönüştürmek için kullanılan ücretsiz bir java kütüphanesidir (başka bir imzayla, muhtemelen parametrelenmiş). (ölü gibi görünüyor, son güncelleme 2013)
EZMorph : EZMorph bir Object'i başka bir Object'e dönüştürmek için kullanılan basit bir java kütüphanesidir. İlkel ve Nesneler, çok boyutlu diziler ve DynaBeans ile dönüşümleri destekler (ölü gibi görünür, son güncelleme tarihi 2008)
Morph : Morph, bir uygulamanın dahili birlikte çalışabilirliğini kolaylaştıran bir Java çerçevesidir. Bilgi bir uygulamadan geçerken, çoklu dönüşümlere uğrar. Morph bu dönüşümleri uygulamak için standart bir yol sağlar. (ölü gibi görünüyor, son güncelleme 2008)
Lorentz : Lorentz genel bir nesneden nesneye dönüşüm çerçevesidir. Bir türdeki Java nesnelerini başka türdeki bir nesneye dönüştürmek için basit bir API sağlar. (ölü gibi görünüyor)
OTOM : OTOM ile, herhangi bir nesnedeki herhangi bir veriyi başka bir nesneye kopyalayabilirsiniz. İmkanlar sonsuzdur. "Sonbahar" a hoş geldiniz. (ölü gibi görünüyor)
Bir diğeri Orika - https://github.com/orika-mapper/orika
Orika, verileri bir nesneden diğerine özyinelemeli olarak kopyalayan bir Java Bean eşleme çerçevesidir. Çok katmanlı uygulamalar geliştirirken çok yararlı olabilir.
Orika, mümkün olduğunca otomatikleştirmeye odaklanırken, gerektiğinde yapılandırma ve genişletme yoluyla özelleştirme sağlar.
Orika geliştiricinin şunları yapmasını sağlar:
- Karmaşık ve derin yapılandırılmış nesneleri eşleme
- İç içe özellikleri üst düzey özelliklere eşleştirerek nesneleri "Düzleştir" veya "Genişlet" veya tersini yapın
- Anında harita oluşturucular oluşturun ve eşlemenin bir kısmını veya tamamını kontrol etmek için özelleştirmeler uygulayın
- Nesne grafiğinde herhangi bir yerde belirli bir nesne kümesinin eşlenmesi üzerinde tam kontrol için dönüştürücüler oluşturun - türe veya hatta belirli özellik adına göre
- Proxy'leri veya gelişmiş nesneleri (Hazırda Beklet veya farklı sahte çerçeveler gibi) yönetme
- Tek bir yapılandırma ile çift yönlü eşleme uygulama
- Hedef soyut sınıf veya arabirim için uygun bir somut sınıfın örnekleriyle eşleme
- Ters eşlemeleri işleme
- JavaBean özelliklerinin ötesinde karmaşık kurallara uyun.
Orika, minimum ek yüke sahip hızlı eşleyiciler oluşturmak için bayt kodu oluşturma özelliğini kullanır.
ModelMapper , görülmeye değer başka bir kütüphanedir. ModelMapper'ın tasarımı diğer kütüphanelerden farklıdır, çünkü:
Daha fazla bilgi için ModelMapper sitesini ziyaret edin:
Apache commons beanutils kullanın:
static void copyProperties(Object dest, Object orig)
Özellik adlarının aynı olduğu tüm durumlar için, başlangıç fasulye ile hedef fasulye arasındaki özellik değerlerini kopyalayın.
Bir tane daha Java haritalama motoru / çerçevesi Nomin var: http://nomin.sourceforge.net .
JMapper Framework'ü denemenizi öneririm .
Bir Java fasulyesi ile Java fasulyesi eşleştiricisidir, ek açıklamalar ve / veya XML ile verilerin dinamik olarak geçişini sağlar.
JMapper ile şunları yapabilirsiniz:
Moo'yu bir seçenek olarak eklemekten mutluluk duyuyorum, ancak açıkça buna karşı önyargılıyım: http://geoffreywiseman.github.com/Moo/
Basit durumlar için kullanımı çok kolay, daha karmaşık vakalar için makul, ancak daha da karmaşıklıklar için geliştirmeyi hayal edebileceğim bazı alanlar olmasına rağmen.
Dozer tabanlı ancak Excel eşleme bildirimi ile eşleme çerçevesini de deneyebilirsiniz. Bazı araçları ve ek harika özellikleri var. Http://openl-tablets.sf.net/mapper adresinden kontrol edin
new ObjectMapper().convertValue(...)
. Jackson'ın ayrıca ek açıklamalar ve ek açıklama karışımları için desteği var, bu yüzden çok iyi bir seçenek buluyorum.