يقدم هذا المقال نعمة لومبوك المشفرة الأنيقة من Springboot ، ويشاركها معك ، على النحو التالي:
ملخص
يساعد Lombok في تبسيط القضاء على بعض كود Java الذي يجب أن يكون عليه ولكن يبدو أنه منتفخ من خلال توفير تعليقات بناء جملة بسيطة. عادةً ما يكون تبسيط كائنات POJO (مثل توليد المستوطنين و Getters تلقائيًا ، وما إلى ذلك) ، بدعم من Lombok ، يمكن للمطورين تجنب العديد من العمليات المتكررة والمتضخمة ، وتحسين نسبة الإشارة إلى الضوضاء إلى حد كبير من رمز Java ، لذلك يجب أن نحاول وتطبيقه!
التكوين على فكرة Intellij
الطريقة 1: تكوين مباشرة في واجهة الفكرة
أدخل أولاً واجهة الإضافات:
ثم ابحث وتثبيت البرنامج المساعد لومبوك:
أخيرًا ، لا تنس تمكين خيار تمكين معالجات التعليقات التوضيحية:
بعد الانتهاء من التثبيت أعلاه ، يجب إعادة تشغيل الفكرة لتصبح مفيدة!
الطريقة 2: قم بتنزيل التثبيت المكون الإضافي يدويًا يدويًا
في بعض الأحيان بسبب أسباب الشبكة ، تفشل الطريقة أعلاه في التثبيت ، بحيث يمكنك فقط تنزيله وتثبيته يدويًا.
قم بتنزيل البرنامج المساعد لومبوك:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
الإضافات -> تثبيت البرنامج المساعد من القرص ... حدد تثبيت حزمة zip تم تنزيله
فقط أعد تشغيل الفكرة
بعد اكتمال الإعدادات في IDE ، تحتاج إلى إضافة تبعية Lombok التالية في pom.xml لاستخدامها
<Rependency> <roupend> org.projectlombok </rougiD> <StifactId> Lombok </shintifactid> <soph> 1.16.16 </version> </sependency>
ملاحظات لومبوك الرئيسية
@Getter and @Setter / توفير مجموعة تلقائيًا واحصل على طرق للخصائص@ToString / وظيفة هذا التعليق التوضيحي هي إنشاء طريقة TOSTRING () تلقائيًا للفئة@EqualsAndHashCode@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / كما يوحي الاسم ، يقوم تلقائيًا بإنشاء منشآت ذات معلمات مقابلة للفئة@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / إضافة دعم السجل المقابل تلقائيًا إلى الفصل@Data / إضافة toString و equalsandhashcode و @getter و addter و @ @ @requiredargsconstructor إلى الحقول غير النهائية ، وهو ما يعادل بشكل أساسي التأثير الشامل للعديد من التعليقات التوضيحية.@NonNull / يساعدنا تلقائيًا على تجنب المؤشرات الخالية. يتم استخدام التعليقات التوضيحية التي تعمل على معلمات الطريقة لإنشاء اختبارات معلمة فارغة تلقائيًا@Cleanup / اتصل تلقائيًا على طريقة Close () بالنسبة لنا. يعمل على المتغيرات المحلية. عندما ينتهي النطاق ، سيتم استدعاء الطريقة الإغلاق تلقائيًا لإصدار الموارد. فيما يلي معركة رمز عملية مع @Data و @Log التعليقات التوضيحية التي يتم استخدامها بشكل متكرر في لومبوك!
استخدام التعليقات التوضيحية data
شرح الموقع الرسمي حول التعليقات التوضيحية لـ Data كما يلي:
جميعًا معًا الآن: اختصار لـ @tostring و equalsandhashcode و @getter على جميع الحقول و setter على جميع الحقول غير النهائية و @requiredargsconstructor!
ليس من الصعب فهمها ، يمكن اعتبارها بمثابة تكامل لشروحات لومبوك المتعددة ، لذلك فهي مريحة للغاية للاستخدام!
أولاً ، قم بإنشاء userLombok user attity pojo. طريقة الكتابة العامة هي كما يلي:
الفئة العامة userlombok {اسم السلسلة النهائية الخاصة ؛ عصر INT الخاص ؛ درجة مزدوجة خاصة ؛ سلسلة خاصة [] علامات ؛ userLombok العام (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getName () {return this.name ؛ } void setage (int age) {this.age = age ؛ } public int getage () {return this.age ؛ } public void setScore (نقاط مزدوجة) {this.score = score ؛ } public double getScore () {return this.score ؛ } السلسلة العامة [] getTags () {return this.tags ؛ } settags public void (string [] tags) {this.tags = tags ؛ } Override public string toString () {return "dataExample (" + this.getName () + "،" + this.getage () + "،" + this.getScore () + "،" + arrays.deeptoString (this.getTags ()) + ") ؛ } cansequal المحمية (كائن آخر) {إرجاع مثيل آخر من DataExample ؛ } Override Public Boolean يساوي (كائن O) {if (o == this) إرجاع true ؛ if (! (o مثيل من DataExample)) إرجاع خطأ ؛ DataExample other = (dataExample) o ؛ if (! o.canequal ((كائن) هذا)) إرجاع خطأ ؛ if (this.getName () == null؟ othername ()! = null :! this.getName (). equals (othername ())) return false ؛ if (this.getage ()! = other.getage ()) return false ؛ if (double.compare (this.getScore () ، other.getScore ()))! = 0) إرجاع خطأ ؛ if (! arrays.deepequals (this.getTags () ، other.getTags ())) إرجاع false ؛ العودة صحيح. } Override public int hashcode () {Final int prime = 59 ؛ int النتيجة = 1 ؛ temp1 النهائي = double.doubletolongbits (this.getScore ()) ؛ النتيجة = (النتيجة*prime) + (this.getName () == null؟ 43: this.getName (). hashcode ()) ؛ النتيجة = (النتيجة*prime) + this.getage () ؛ النتيجة = (النتيجة*prime) + (int) (temp1 ^ (temp1 >>> 32)) ؛ النتيجة = (النتيجة*prime) + arrays.deephashCode (this.getTags ()) ؛ نتيجة العودة }}بعد نعمة لومبوك ، يمكن تبسيط طريقة الكتابة إلى:
datapublic class userlombok {private final string name ؛ عصر INT الخاص ؛ درجة مزدوجة خاصة ؛ سلسلة خاصة [] علامات ؛}عند استخدامها في الفكرة ، سيتم إكمال تعليقات لومبوك تلقائيًا ، كما هو موضح في الشكل التالي:
دعنا نكتب رمز اختبار POJO
public static void main (string [] args) {userLombok userLombok = new userLombok ("Hansonwang99") ؛ userlombok.setage (18) ؛ String [] Array = New String [] {"Apple" ، "Juice"} ؛ userlombok.settags (صفيف) ؛ userlombok.setscore (99.0) ؛ System.out.println (userLombok) ؛ }من الشكل أدناه ، يمكننا أن نرى أن الفكرة لا يزال بإمكانها إكمال الكود تلقائيًا بواسطة Lombok بالنسبة لنا:
نتائج الطباعة
نظرًا لأن Lombok يقوم تلقائيًا بإنشاء طريقة tostring بالنسبة لنا ، فإن نتيجة الطباعة للكائن هي كما يلي:
userLombok (name = Hansonwang99 ، Age = 18 ، Score = 99.0 ، Tags = [Apple ، Juice])
@log ممارسة التعليقات التوضيحية
في مقالتي ، نستخدم Pring Spring Boot Framework Framework ، نستخدم Log4J2 ككائن سجل ، وهو مكتوب على النحو التالي:
@restController@requestMapping ("/testlogging") الفئة العامة loggingTestController {private final logger logger = logManager.getLogger (this.getClass ()) ؛ getMapping ("/hello") السلسلة العامة Hello () {for (int i = 0 ؛ i <10_0000 ؛ i ++) {logger.info ("info execute index method") ؛ logger.warn ("تحذير تنفيذ طريقة الفهرس") ؛ logger.error ("خطأ تنفيذ طريقة الفهرس") ؛ } إرجاع "تطبيق Springboot الأول" ؛ }}إذا كنت تستخدم Lombok بدلاً من ذلك ، فإن طريقة الكتابة تصبح أكثر إيجازًا. نحتاج فقط إلى إدخال التعليق التوضيحي لـ @log المقابل لإكمال توليد كائن السجل:
@restController@requestMapping ("/testLoggingWithLombok")@log4j2public class loggingTestControllerLombok {getMapping ("/hello") السلسلة العامة Hello () {for (int i = 0 ؛ i <10_0000 ؛ i ++) {log.info ("info execute method") ؛ log.Warn ("تحذير تنفيذ طريقة الفهرس") ؛ log.error ("خطأ تنفيذ طريقة الفهرس") ؛ } إرجاع "تطبيق Springboot الأول" ؛ }}ماذا عن ذلك ، هو كل شيء أنيقة جدا!
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.