Java'da ModelMapper ile Nesne Eşleme Kılavuzu
Nesne eşleme, verileri bir nesneden diğerine dönüştürme işlemidir. Java'da, farklı yapılara sahip iki nesne arasında veri eşlemek için çok sayıda standart kod gerektiren sıkıcı bir görev olabilir. Neyse ki, nesne eşleme sürecini basitleştiren ve eşleme davranışını özelleştirmede çok fazla esneklik sağlayan ModelMapper adında güçlü bir kitaplık var.
Bu yazıda size ModelMapper'ı tanıtacağız ve Java'da iki nesne arasında eşleme yapmak için nasıl kullanılacağını göstereceğiz.
ModelMapper'a Başlarken
ModelMapper'ı Java projenizde kullanmaya başlamak için ModelMapper kütüphanesini projenize eklemeniz gerekir. Maven kullanıyorsanız, projenizin dosyasına aşağıdaki bağımlılığı ekleyin pom.xml:
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.4.2</version>
</dependency>
implementation 'org.modelmapper:modelmapper:2.4.2'
ModelMapper ile Nesneleri Eşleme
Diyelim ki farklı yapılara sahip iki nesneniz var ve aralarındaki verileri eşlemek istiyorsunuz. İşte bir örnek:
public class User {
private String name;
private int age;
// constructor, getters, and setters
}
public class UserDTO {
private String fullName;
private int userAge;
// constructor, getters, and setters
}
public class Main {
public static void main(String[] args) {
User user = new User("John", 30);
ModelMapper modelMapper = new ModelMapper();
UserDTO userDTO = modelMapper.map(user, UserDTO.class);
System.out.println(userDTO.getFullName()); // Output: John
System.out.println(userDTO.getUserAge()); // Output: 30
}
}
Yöntemi çalıştırdığımızda main, çıktı, eşlemenin başarılı olduğunu gösteren Johnve olacaktır.30
Nesne Eşlemeyi Özelleştirme
ModelMapper, nesne eşlemeyi özelleştirmede çok fazla esneklik sağlar. Özel alan eşlemeleri belirtebilir, tür dönüştürücüler oluşturabilir ve farklı eşleme stratejileri yapılandırabilirsiniz.
Özel Alan Eşlemeleri
Bazen, iki nesne arasında farklı adlara sahip alanları eşlemeniz gerekebilir. Bunu, özel alan eşlemeleri belirleyerek başarabilirsiniz. İşte bir örnek:
modelMapper.typeMap(User.class, UserDTO.class)
.addMappings(mapper -> {
mapper.map(src -> src.getName(), UserDTO::setFullName);
mapper.map(src -> src.getAge(), UserDTO::setUserAge);
});
Tip Dönüştürücüler
ModelMapper, verileri farklı türler arasında otomatik olarak dönüştürebilen bir dizi yerleşik tür dönüştürücü sağlar. Ancak bazen özel veri türleri için kendi tür dönüştürücülerinizi oluşturmanız gerekebilir. İşte bir örnek:
public class DateToStringConverter extends AbstractConverter<Date, String> {
@Override
protected String convert(Date source) {
return source.toString();
}
}
ModelMapperYöntemi çağırarak özel tür dönüştürücüyü örneğe kaydedebiliriz addConverter():
modelMapper.addConverter(new DateToStringConverter());
Haritalama Stratejileri
ModelMapper, eşleme davranışını özelleştirmek için kullanılabilecek çeşitli eşleme stratejileri sağlar. Kullanılabilir stratejilerden bazıları Strict, Looseve Standard.
Örneğin, Loosestrateji, farklı adlara ve türlere sahip alanlar arasında eşlemeye izin verirken, Strictkatı eşleme kurallarını zorunlu kılar ve bir eşleme gerçekleştirilemediğinde bir istisna oluşturur.
setMatchingStrategy()Örnekteki yöntemi çağırarak eşleme stratejisini ayarlayabilirsiniz ModelMapper:
modelMapper.getConfiguration()
.setMatchingStrategy(MatchingStrategies.LOOSE);
Çözüm
Bu yazıda, Java'da iki nesne arasında eşleme yapmak için ModelMapper'ı nasıl kullanacağınızı gösterdik. ModelMapper, nesne eşleme sürecini basitleştiren ve eşleme davranışını özelleştirmede çok fazla esneklik sağlayan güçlü bir kitaplıktır.
ModelMapper'ı kullanarak, nesne eşleme için çok sayıda standart kod yazmaktan kaçınabilir ve uygulamanızın temel işlevlerine odaklanabilirsiniz.
Okuduğunuz için teşekkürler. İyi öğrenmeler
Yayınımızı takip ederek destek olun
Ayrıca aşağıdaki makalelere bakın
En Sık Sorulan Java8 Akışına Dayalı Mülakat Sorusu — Bölüm 1 Kodlama: Javascript'te bir diziyi düzleştirme JAVA'da Bir Veritabanına Erişmenin En Kolay Yolu Kaosun Güzelliği: Rastgele Düşünceler Yaratıcılığa Nasıl İlham Verebilir Java'da Birden Fazla İstisnayı Yakalayın Apache Maven — Kısaca
![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































