مقدمة
lombok هو مكون إضافي على مستوى التجميع يمكنه إنشاء بعض التعليمات البرمجية عند تجميع المشروع. على سبيل المثال ، أثناء التطوير اليومي ، يجب إنتاج عدد كبير من ملفات JavaBean . يحتاج كل JavaBean إلى توفير عدد كبير من get set . إذا كان هناك العديد من الحقول والتغييرات ، فمن المراعي تعديله نسبيًا. يمكن أن ينقذنا lombok المقابلة مشكلة إنشاء getter وطرق setter يدويًا من خلال التعليقات التوضيحية (@getter,@setter) . يمكنه تلقائيًا إنشاء getter وطرق setter عندما نرسل رمز المصدر.
أي أن التأثير الذي يمكن أن تحققه هو: لا توجد طرق getter و setter في الكود المصدري ، ولكن هناك طرق getter و setter في ملف bytecode المترجم.
بالإضافة إلى ذلك ، خلال مرحلة تطوير المشروع ، تتغير خصائص class باستمرار. يمكن إضافة حقل اليوم ، وقد يتم حذف حقل غدًا. يتطلب كل تغيير تعديل رمز القالب المقابل. بالإضافة إلى ذلك ، تحتوي بعض class على العديد من الحقول التي لا يمكنها الانتهاء من النظرة الأولى. إذا قمت بإضافة رمز قالب ، فمن الصعب رؤيته في لمحة. ما هو أكثر من ذلك ، لأن هناك الكثير من الحقول ، أريد استخدام builder لإنشائها. يتم خلط إنشاء builder وحقول يدويًا مع الفصل الأصلي ، والذي يبدو فوضويًا. يمكن لـ lombok 's @Builder حل هذه المشكلة.
عنوان الموقع الرسمي: https://projectlombok.org/
Lombok أحدث رقم الإصدار: http://jcenter.bintray.com/org/projectlombok/lombok/
المستند الرسمي: https://projectlombok.org/features/all
مقدمة التعليق التوضيحي في لومبوك: https://www.vevb.com/article/151363.htm
قم بتثبيت البرنامج المساعد لومبوك
إضافة دعم التعليقات التوضيحية
إضافة التبعيات
BuildScript {ext {springBootversion = '2.0.2.Release'} repositories {mavencentral ()} تبعيات {classpath ("org.springframework.boot: spring-boot-rglugin: $ {Springbootversion}}}}}}} "org.springframework.boot'apply plugin: 'io.spring.dependency-management' group = 'com.yanjun'version =' 0.0.1-snapshot'sourCeCexipatibility = 1.8repositories "org.springframework.boot: spring-boot-starter-web '،)التعليقات التوضيحية المشتركة
@نونول استعلام معالجة فارغة
package com.yanjun.mybatis.bean ؛ استيراد lombok.data ؛ استيراد lombok.noargsconstructor ؛ استيراد lombok.nonnull ؛@data@noargsconstructorpublic user {ateger age ؛ nonnull اسم السلسلة العامة ؛}أي ما يعادل
package com.yanjun.mybatis.bean ؛ استيراد lombok.nonnull ؛ مستخدم الفئة العامة {عصر عدد صحيح عام ؛ nonnull اسم السلسلة العامة ؛ عدد صحيح عام getage () {return this.age ؛ } nonnull public string getName () {return this.name ؛ } public void setage (integer age) {this.age = age ؛ } public void setName (nonnull string name) {if (name == null) {رمي nullpointerxception جديد ( } آخر {this.name = name ؛ }}}امتحان
مستخدم المستخدم = مستخدم جديد () ؛ user.setName (null) ؛
تأثير
استثناء في الموضوع "الرئيسي" java.lang.nullpointerexception: تم وضع علامة على الاسم @nonnull ولكن فارغ
في com.yanjun.mybatis.bean.user.setname (user.java:7)
في com.yanjun.mybatis.lombokapplication.main (lombokapplication.java:15)
data يوفر أساليب الحصول على وضبط
package com.yanjun.mybatis.bean ؛ استيراد lombok.data ؛ data // إنشاء تلقائيًا وتعيين طرق فئة عامة {integer id ؛ اسم السلسلة عصر عدد صحيح Public Static Void Main (String [] args) {// test method user = new user () ؛ user.setName ("Zhaoyanjun") ؛ user.setage (20) ؛ user.setid (1) ؛ }}@SLF4J طباعة سجل
package com.yanjun.mybatis.bean ؛ استيراد lombok.data ؛ استيراد lombok.extern.slf4j.slf4j ؛ data // إنشاء تلقائيًا وضبط الطرق @slf4j // تسجيل الدخول إلى مستخدم الفئة العامة {integer ؛ اسم السلسلة عصر عدد صحيح public static void main (string [] args) {user user = new user () ؛ user.setName ("Zhaoyanjun") ؛ user.setage (20) ؛ user.setid (1) ؛ log.info ("login" + user.toString ()) ؛ }}allargsconstructor مُنشئ المعلمة الكامل
package com.yanjun.mybatis.bean ؛ استيراد lombok.allargsconstructor ؛ استيراد lombok.data ؛ استيراد lombok.extern.slf4j.slf4j ؛ @data // class تلقائيًا ، قم بإنشاء mething ket و settegr idtegricontructor // توليد البنية الكاملة تلقائيًا ؛ اسم السلسلة عصر عدد صحيح public static void main (string [] args) {user user = new user (1 ، "Zhaoyanjun" ، 20) ؛ log.info ("login" + user.toString ()) ؛ }}ToString تلقائيًا ، قم بإنشاء طريقة tostring
حزمة com.yanjun.mybatis.bean ؛ استيراد lombok.allargsconstructor ؛ استيراد lombok.data ؛ استيراد lombok.toString ؛ استيراد lombok.extern.slf4j.slf4j toString (من = {"id" ، "Age"}) // toString () طريقة طباعة المعرف فقط ، اسم حقل الفئة العامة {integer id ؛ اسم السلسلة عصر عدد صحيح public static void main (string [] args) {user user = new user (1 ، "Zhaoyanjun" ، 20) ؛ log.info ("login" + user.toString ()) ؛ }}تستبعد طريقة tostring () الحقول
.
يتم استخدام Value لتعليق الفصول النهائية
يشبه التعليق التوضيحي @Value @Data ، والفرق هو أنه سيحدد جميع متغيرات الأعضاء على أنها تعديل private final افتراضيًا ولن يولد طريقة set .
package com.yanjun.mybatis.bean ؛ استيراد lombok.value ؛@valuepublic user {integer id = 1 ؛ اسم السلسلة = "Zhaoyanjun" ؛ العمر الصحيح = 3 ؛}رمز المترجم
مستخدم الفئة النهائية العامة {private Final Integer ID = 1 ؛ اسم السلسلة النهائية الخاصة = "Zhaoyanjun" ؛ عصر عدد صحيح نهائي خاص = 3 ؛ المستخدم العام () {} integer getId () {return this.id ؛ } السلسلة العامة getName () {this.getClass () ؛ العودة "Zhaoyanjun" ؛ } integer getage () {return this.age ؛ } // حذف بعض الكود ......}builder: أضف نمط مُنشئ إلى الفئة المشروحة
استيراد lombok.builder ؛@builderpublic فئة مستخدم {public integer id ؛ اسم السلسلة العامة ؛ عصر عدد صحيح عام ؛}أي ما يعادل الرمز التالي
package com.yanjun.mybatis.bean ؛ مستخدم الطبقة العامة {public integer id ؛ اسم السلسلة العامة ؛ عصر عدد صحيح عام ؛ المستخدم (معرف INTEGER ، اسم السلسلة ، عصر عدد صحيح) {this.id = id ؛ this.name = name ؛ this.age = العمر ؛ } user user.userBuilder builder () {return new user.userBuilder () ؛ } الفئة الثابتة العامة userbuilder {private integer id ؛ اسم السلسلة الخاصة ؛ عصر عدد صحيح خاص ؛ userBuilder () {} user.userBuilder id (integer id) {this.id = id ؛ إرجاع هذا ؛ } user.userBuilder اسم (اسم السلسلة) {this.name = name ؛ إرجاع هذا ؛ } user.userBuilder Age (integer age) {this.age = Age ؛ إرجاع هذا ؛ } user user build () {return new user (this.id ، this.name ، this.age) ؛ } السلسلة العامة toString () {return "user.userBuilder (id =" + this.id + "، name =" + this.name + "، age =" + this.age + ") ؛}}}يستخدم
userBuilder userbuilder = user.builder () ؛ المستخدم = userbuilder .age (10) .ID (1) .Name ("yanjun") .build () ؛ system.out.println (":" + userbuilder.toString ()) ؛synchronized: أضف قفل المزامنة
package com.yanjun.mybatis.bean ؛ استيراد lombok.synchronized ؛ مستخدم الفئة العامة {عصر عدد صحيح عام ؛ اسم السلسلة العامة ؛ // طريقة عادية ، أي ما يعادل قفل الكائن ssynchronized int run1 () {return 1 ؛ } // طريقة ثابتة ، أي ما يعادل قفل الفئة @synchronized int int2 () {return 2 ؛ }}تأثير الكود يعادل
مستخدم الفئة العامة {كائن نهائي خاص $ lock = كائن جديد [0] ؛ كائن نهائي ثابت خاص $ lock = كائن جديد [0] ؛ عصر عدد صحيح عام ؛ اسم السلسلة العامة ؛ user user () {} int run1 () {object var1 = this. $ lock ؛ متزامن (هذا. $ lock) {return 1 ؛ }} static int Run2 () {object var0 = $ lock ؛ متزامن ($ lock) {return 2 ؛ }}}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.