MapStruct عبارة عن معالج تعليقات توضيحية لـ Java مصمم لإنشاء مخططات آمنة وعالية الأداء لفئات Java Bean، بما في ذلك دعم سجلات Java 16+. من خلال أتمتة إنشاء التعيينات، يلغي MapStruct الحاجة إلى الترميز اليدوي الممل والمعرض للأخطاء. يوفر المولد إعدادات افتراضية معقولة وتحويلات مدمجة للنوع، مما يسمح له بالتعامل مع التعيينات القياسية دون عناء، مع توفير المرونة أيضًا للتكوينات المخصصة أو سلوكيات التعيين المتخصصة. من خلال التكامل السلس مع مشاريع Java الحديثة، يمكن لـ MapStruct التخطيط بين الوحدات التقليدية والسجلات وحتى التسلسلات الهرمية المعقدة، مما يجعلها أداة قابلة للتكيف مع تطبيقات Java المتنوعة.
بالمقارنة مع أطر رسم الخرائط التي تعمل في وقت التشغيل، يقدم MapStruct المزايا التالية:
لإنشاء تعيين بين نوعين، قم بتعريف واجهة مخطط مثل هذا:
@ Mapper
public interface CarMapper {
CarMapper INSTANCE = Mappers . getMapper ( CarMapper . class );
@ Mapping ( target = "seatCount" , source = "numberOfSeats" )
CarDto carToCarDto ( Car car );
}
في وقت الترجمة، سيقوم MapStruct بإنشاء تطبيق لهذه الواجهة. يستخدم التنفيذ الذي تم إنشاؤه استدعاءات طريقة Java البسيطة للتخطيط بين كائنات المصدر والهدف، أي لا يتضمن أي انعكاس. افتراضيًا، يتم تعيين الخصائص إذا كانت لها نفس الاسم في المصدر والهدف، ولكن يمكنك التحكم في هذا والعديد من الجوانب الأخرى باستخدام @Mapping
ومجموعة من التعليقات التوضيحية الأخرى.
يتطلب MapStruct إصدار Java 1.8 أو إصدار أحدث.
يعمل MapStruct في تصميمات سطر الأوامر (javac العادي، عبر Maven، Gradle، Ant، وما إلى ذلك) وIDEs.
بالنسبة لـ Eclipse، هناك مكون إضافي مخصص قيد التطوير (راجع https://github.com/mapstruct/mapstruct-Eclipse). إنه يتجاوز ما هو ممكن باستخدام معالج التعليقات التوضيحية، حيث يوفر مساعدة المحتوى لسمات التعليقات التوضيحية والإصلاحات السريعة والمزيد.
بالنسبة لـ IntelliJ، يتوفر المكون الإضافي في سوق IntelliJ (راجع https://plugins.jetbrains.com/plugin/10036-mapstruct-support).
بالنسبة للمشاريع المستندة إلى Maven، أضف ما يلي إلى ملف POM الخاص بك من أجل استخدام MapStruct (التبعيات متوفرة في Maven Central):
...
< properties >
< org .mapstruct.version>1.6.3</ org .mapstruct.version>
</ properties >
...
< dependencies >
< dependency >
< groupId >org.mapstruct</ groupId >
< artifactId >mapstruct</ artifactId >
< version >${org.mapstruct.version}</ version >
</ dependency >
</ dependencies >
...
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-compiler-plugin</ artifactId >
< version >3.13.0</ version >
< configuration >
< source >17</ source >
< target >17</ target >
< annotationProcessorPaths >
< path >
< groupId >org.mapstruct</ groupId >
< artifactId >mapstruct-processor</ artifactId >
< version >${org.mapstruct.version}</ version >
</ path >
</ annotationProcessorPaths >
</ configuration >
</ plugin >
</ plugins >
</ build >
...
بالنسبة لـ Gradle، أنت بحاجة إلى شيء على النحو التالي:
plugins {
.. .
id " com.diffplug.eclipse.apt " version " 3.26.0 " // Only for Eclipse
}
dependencies {
.. .
implementation ' org.mapstruct:mapstruct:1.6.3 '
annotationProcessor ' org.mapstruct:mapstruct-processor:1.6.3 '
testAnnotationProcessor ' org.mapstruct:mapstruct-processor:1.6.3 ' // if you are using mapstruct in test code
}
.. .
إذا كنت لا تعمل باستخدام أداة إدارة التبعية، فيمكنك الحصول على حزمة التوزيع من صفحة الإصدارات.
لمعرفة المزيد حول MapStruct، ارجع إلى الصفحة الرئيسية للمشروع. تغطي الوثائق المرجعية جميع الوظائف المتوفرة بالتفصيل. إذا كنت بحاجة إلى مساعدة يرجى طرحها في المناقشات.
يستخدم MapStruct Maven لبناءه. مطلوب Java 11 لبناء MapStruct من المصدر. لبناء المشروع كاملا، قم بتشغيل
./mvnw clean install
من جذر دليل المشروع. لتخطي وحدة التوزيع، قم بتشغيل
./mvnw clean install -DskipDistribution=true
يستخدم MapStruct معالج التعليقات التوضيحية للأحجار الكريمة لإنشاء جواهر الخرائط للتعليقات التوضيحية الخاصة به. ولذلك، من أجل التكامل السلس داخل معالجة التعليقات التوضيحية IDE، يجب تمكينها.
تأكد من أن لديك على الأقل IntelliJ 2018.2.x (مطلوب نظرًا لأن دعم annotationProcessors
من البرنامج maven-compiler-plugin
يأتي من هذا الإصدار). تمكين معالجة التعليقات التوضيحية في IntelliJ (الإنشاء والتنفيذ والنشر -> المترجم -> معالجات التعليقات التوضيحية)
تأكد من تثبيت البرنامج المساعد m2e_apt.
تم ترخيص MapStruct بموجب ترخيص Apache، الإصدار 2.0 ("الترخيص")؛ لا يجوز لك استخدام هذا المشروع إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على https://www.apache.org/licenses/LICENSE-2.0.