บทความนี้แนะนำ Lombok ที่มีรหัสที่สง่างามของ Springboot และแบ่งปันกับคุณดังนี้:
ภาพรวม
Lombok ช่วยลดความซับซ้อนของรหัส Java ที่ต้องมี แต่ดูเหมือนว่าจะป่องด้วยการให้คำอธิบายประกอบไวยากรณ์อย่างง่าย โดยทั่วไปแล้วการทำให้วัตถุ POJO ง่ายขึ้น (เช่นการสร้างตัวตั้งค่าและผู้ตั้งค่าโดยอัตโนมัติสำหรับเรา ฯลฯ ) ด้วยการสนับสนุนของลอมบอกนักพัฒนาสามารถหลีกเลี่ยงการดำเนินการซ้ำ ๆ และบวมจำนวนมากปรับปรุงอัตราส่วนสัญญาณต่อสัญญาณรบกวนของรหัส Java ดังนั้นเราต้องลองและนำไปใช้!
การกำหนดค่าความคิด Intellij
วิธีที่ 1: กำหนดค่าโดยตรงในอินเทอร์เฟซ Idea
ก่อนอื่นป้อนส่วนต่อประสานปลั๊กอิน:
จากนั้นค้นหาและติดตั้งปลั๊กอิน Lombok:
สุดท้ายอย่าลืมเปิดใช้งานตัวเลือกเปิดใช้งานของโปรเซสเซอร์คำอธิบายประกอบ:
หลังจากการติดตั้งข้างต้นเสร็จสิ้นแนวคิดจะต้องเริ่มต้นใหม่เพื่อให้มีผล!
วิธีที่ 2: ดาวน์โหลดการติดตั้งปลั๊กอิน Lombok ด้วยตนเองด้วยตนเอง
บางครั้งเนื่องจากเหตุผลของเครือข่ายวิธีการข้างต้นไม่สามารถติดตั้งได้ดังนั้นคุณสามารถดาวน์โหลดและติดตั้งได้ด้วยตนเองเท่านั้น
ดาวน์โหลดปลั๊กอิน Lombok:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
ปลั๊กอิน -> ติดตั้งปลั๊กอินจากดิสก์ ... เลือกการติดตั้งแพ็คเกจซิปที่ดาวน์โหลด
เพียงแค่รีสตาร์ทไอเดีย
หลังจากการตั้งค่าใน IDE เสร็จสมบูรณ์คุณต้องเพิ่มการพึ่งพา Lombok ต่อไปนี้ใน pom.xml เพื่อใช้งาน
<การพึ่งพา> <roupId> org.projectlombok </groupId> <ratifactId> Lombok </artifactid> <version> 1.16.16 </version>
บันทึกหลักของลอมบอก
@Getter and @Setter / จัดเตรียมวิธีการและรับเมธอดสำหรับคุณสมบัติโดยอัตโนมัติ@ToString / ฟังก์ชั่นของคำอธิบายประกอบนี้คือการสร้างวิธี TOSTRING () โดยอัตโนมัติสำหรับคลาสโดยอัตโนมัติ@EqualsAndHashCode / สร้าง HashCode และ Equals โดยอัตโนมัติสำหรับฟิลด์วัตถุ@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / เป็นชื่อหมายถึงสร้างตัวสร้างโดยอัตโนมัติด้วยพารามิเตอร์ที่สอดคล้องกันสำหรับคลาสโดยอัตโนมัติ@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / เพิ่มการสนับสนุนบันทึกที่สอดคล้องกันโดยอัตโนมัติในคลาสโดยอัตโนมัติ@Data / เพิ่ม @ToString โดยอัตโนมัติ @EqualSandHashCode, @getter, เพิ่ม @setter และ @requiredargsconstructor ไปยังเขตข้อมูลที่ไม่ใช่รอบรองชนะเลิศซึ่งเทียบเท่ากับผลที่ครอบคลุมของคำอธิบายประกอบหลายรายการ@NonNull / ช่วยให้เราหลีกเลี่ยงพอยน์เตอร์ว่างโดยอัตโนมัติ คำอธิบายประกอบที่ทำหน้าที่กับพารามิเตอร์วิธีการใช้เพื่อสร้างการตรวจสอบพารามิเตอร์ NULL โดยอัตโนมัติ@Cleanup / เรียกเมธอดปิด () โดยอัตโนมัติสำหรับเรา มันทำหน้าที่กับตัวแปรท้องถิ่น เมื่อขอบเขตสิ้นสุดลงวิธีการปิดจะถูกเรียกโดยอัตโนมัติเพื่อปล่อยทรัพยากร นี่คือการต่อสู้รหัสที่ใช้งานได้จริงกับ @Data และ @Log Annotations ที่ใช้บ่อยที่สุดใน Lombok!
@Data คำอธิบายประกอบ
คำอธิบายของเว็บไซต์อย่างเป็นทางการเกี่ยวกับ @Data Annotation มีดังนี้:
ทั้งหมดเข้าด้วยกัน: ทางลัดสำหรับ @ToString, @EqualSandHashCode, @getter ในทุกฟิลด์, @Setter บนสนามที่ไม่ใช่รอบรองชนะเลิศทั้งหมดและ @requiredargSconstructor!
ไม่ยากที่จะเข้าใจมันถือได้ว่าเป็นการรวมตัวกันของคำอธิบายประกอบลอมบอกหลายรายการดังนั้นจึงสะดวกในการใช้งาน!
ก่อนอื่นให้สร้าง UserLombok เอนทิตี POJO วิธีการเขียนทั่วไปมีดังนี้:
คลาสสาธารณะ userlombok {ชื่อสตริงสุดท้ายส่วนตัว; อายุ int ส่วนตัว; คะแนนสองเท่าส่วนตัว; สตริงส่วนตัว [] แท็ก; Public UserLombok (ชื่อสตริง) {this.name = name; } สตริงสาธารณะ getName () {return this.name; } void setage (อายุ int) {this.age = อายุ; } public int getage () {return this.age; } โมฆะสาธารณะ setScore (คะแนนสองเท่า) {this.score = คะแนน; } สาธารณะ double getScore () {return this.score; } สตริงสาธารณะ [] getTags () {return this.tags; } โมฆะสาธารณะ settags (สตริง [] แท็ก) {this.tags = แท็ก; } @Override สตริงสาธารณะ toString () {return "dataExample (" + this.getName () + "," + this.getage () + "," + this.getScore () + "," + array.deeptOstring (this.getTags ()) + ")"; } บูลีนที่ได้รับการป้องกัน canequal (วัตถุอื่น ๆ ) {ส่งคืนอินสแตนซ์อื่น ๆ ของ DataExample; } @Override บูลีนสาธารณะเท่ากับ (Object O) {ถ้า (o == สิ่งนี้) คืนค่าจริง; if (! (o อินสแตนซ์ของ dataexample)) ส่งคืน false; DataExample อื่น ๆ = (DataExample) o; ถ้า (! o.canequal ((วัตถุ) นี้)) ส่งคืนเท็จ; if (this.getName () == null? อื่น ๆ getName ()! = null :! this.getName (). เท่ากับ (อื่น ๆ getName ())) ส่งคืนเท็จ; if (this.getage ()! = other.getage ()) ส่งคืน false; if (double.compare (this.getScore (), อื่น ๆ getScore ()))! = 0) ส่งคืนเท็จ; if (! array.deepequals (this.getTags (), other.getTags ())) ส่งคืนเท็จ; กลับมาจริง; } @Override public int hashCode () {final int prime = 59; int ผลลัพธ์ = 1; temp1 ยาวสุดท้าย = double.doubletolongbits (this.getScore ()); result = (ผลลัพธ์*prime) + (this.getName () == null? 43: this.getName (). hashCode ()); result = (ผลลัพธ์*prime) + this.getage (); result = (ผลลัพธ์*prime) + (int) (temp1 ^ (temp1 >>> 32)); result = (ผลลัพธ์*prime) + arrays.deephashCode (this.getTags ()); ผลการกลับมา; -หลังจากพรของลอมบอกวิธีการเขียนสามารถทำให้ง่ายขึ้น:
@Datapublic คลาส userlombok {ชื่อสตริงสุดท้ายส่วนตัว; อายุ int ส่วนตัว; คะแนนสองเท่าส่วนตัว; สตริงส่วนตัว [] แท็ก;}เมื่อใช้ในแนวคิดคำอธิบายประกอบของลอมบอกจะเสร็จสมบูรณ์โดยอัตโนมัติดังแสดงในรูปต่อไปนี้:
มาเขียนรหัสทดสอบ pojo
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {userlombok userlombok = new userlombok ("hansonwang99"); userlombok.setage (18); String [] array = สตริงใหม่ [] {"Apple", "Juice"}; userlombok.settags (อาร์เรย์); userlombok.setscore (99.0); System.out.println (userlombok); -จากรูปด้านล่างเราจะเห็นว่าความคิดนั้นยังสามารถกรอกรหัสโดยอัตโนมัติที่สร้างโดย Lombok โดยอัตโนมัติสำหรับเรา:
ผลการพิมพ์
เนื่องจากลอมบอกสร้างวิธีการ ToString โดยอัตโนมัติสำหรับเราผลการพิมพ์ของวัตถุมีดังนี้:
userlombok (ชื่อ = hansonwang99, อายุ = 18, คะแนน = 99.0, แท็ก = [แอปเปิ้ล, น้ำผลไม้])
@log คำอธิบายประกอบ
ในบทความของฉันการฝึกซ้อมกรอบบันทึกการบูตสปริงเราใช้ log4j2 เป็นวัตถุบันทึกซึ่งเขียนดังนี้:
@restcontroller@requestmapping ("/testlogging") คลาสสาธารณะ LoggingTestController {ส่วนตัว logger สุดท้าย logger = logManager.getLogger (this.getClass ()); @getMapping ("/hello") สตริงสาธารณะสวัสดี () {สำหรับ (int i = 0; i <10_0000; i ++) {logger.info ("ข้อมูลการดำเนินการดัชนีข้อมูล"); logger.warn ("เตือนวิธีการดัชนีดำเนินการ"); logger.error ("ข้อผิดพลาดดำเนินการดัชนีวิธีการ"); } return "แอปพลิเคชัน Springboot แรกของฉัน"; -หากคุณใช้ Lombok แทนวิธีการเขียนจะกระชับมากขึ้น เราจำเป็นต้องแนะนำคำอธิบายประกอบ @log ที่เกี่ยวข้องเพื่อให้การสร้างวัตถุบันทึกเสร็จสมบูรณ์:
@restcontroller@requestmapping ("/testloggingwithlombok")@log4j2public คลาส loggingtestcontrollerlombok {@getmapping ("/hello") สตริงสาธารณะสวัสดี () {สำหรับ (int i = 0; i <10_0000; i ++) {log.info log.warn ("เตือนวิธีการดัชนีดำเนินการ"); log.error ("ข้อผิดพลาดดำเนินการดัชนีวิธีการ"); } return "แอปพลิเคชัน Springboot แรกของฉัน"; -แล้วทุกอย่างสง่างาม!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น