Trước hết, nếu các bạn chưa biết thì Lombok là một thư viện của Java, vậy tại sao nó lại có thể giúp bạn quay tay nhanh gấp 69 lần, ý của mình là code nhanh hơn 69 lần.\r\n\r\nHãy cùng nhớ lại cách mà chúng ta tạo ra một class hoàn chỉnh trong java nhé:\r\n\r\n\"\"\r\n\r\nHồi còn đi học thì còn thích ngầu ngầu (hoặc là tập đánh 10 ngón) nên lúc nào cũng tự tay code các hàm Getter&Setter và Constructor cho các class. Nhưng code hoài những thứ lặp đi làm lại đó cũng chán (hoặc là đã thành thạo đánh bàn phím 10 ngón rồi :]] ) thế là cũng mày mò biết được trong IDE có thủ thuật cho phép sinh tự động các hàm Setter&Getter trong 3 giây (trong bài này mình sẽ sử dụng Eclipse để làm ví dụ nhé).\r\n\r\nSau khi tạo class và một số properties cho class, bấm nhấn tổ hợp phím (ALT SHIFT S) + R, sau đó chọn các thuộc tình mà bạn muốn sinh tự động các hàm GetterSetter (mình xin phép không nói kỹ đoạn này, vì mình tin chắc là bạn nào cũng có khả năng làm được).\r\n\r\nVới cách sử dụng thủ thuật trong IDE thì nó cũng giúp bạn tăng tốc rất là nhiều rồi, dù class có hàng ngàn properties đi chăng nữa, thì cũng không tốn bao nhiêu thời gian cho việc này. Vậy tại sao lại cần LOMBOK khi bạn đã biết cách đi đường quyền với IDE.\r\n\r\nÀ, mình quên mất chưa nói về mục đích mà LOMBOK xuất hiện ở trái đất.\r\n\r\n\"\"\r\n\r\nLombok là một thư viện, một plugin, giúp chúng ta giảm thiểu các đoạn code thừa (boilerplate) bằng cách tự động sinh ra các hàm Get, Set, Constructor, v.v.. Mặc dù nó là một công cụ giúp chúng ta generate code một cách tự động nhưng không giống như các IDE làm. Các IDE generate các phương thức Getter, Setter và một số phương thức khác trong các tập tin .java. Lombok cũng generate các phương thức đó nhưng là trong các tập tin .class file. Với tiêu chí giúp developer tập trung vào tầng nghiệp vụ và logic thay vì mất thời gian làm những việc \"thừa thãi\", không những làm cho code sáng sửa và dễ phát triển hơn.\r\n\r\nVẫn chưa đủ thuyết phục bạn đúng không nào, OK mình sẽ đưa ra vài dẫn chứng để bạn quyết định có nên sử dụng LOMBOK trong dự án của mình hay không:\r\n\r\n\"\"\r\n\r\nKhá lâu cho màn dạo đầu, nếu bạn vẫn không thích và không muốn tiến sâu và bên trong để khám phá thì bạn đừng tốn thời gian mò mẫm tiếp với bài viết này nhé, hay đứng dậy và ra ngoài thư giãn, còn đối với những ai cảm thấy tò mò và đang hưng phấn, thì cùng mình tiếp tục lột LOMBOK ra xem hàng họ như thế nào nha.\r\n\r\n\"\"\r\n\r\n1. Hướng dẫn cài đặt\r\n    a. Sử dụng maven để quản lý các thư viện trong dự án\r\n\r\nApache Maven là một chương trình quản lý dự án cho phép các developers có thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) , quản lý build, tự động download javadoc & source …\r\n\r\nTruy cập vào liên kết sau để lấy thông tin về Lombok cho project của bạn nhé https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.12 \r\n
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->\r\n<dependency>\r\n    <groupId>org.projectlombok</groupId>\r\n    <artifactId>lombok</artifactId>\r\n    <version>1.18.12</version>\r\n    <scope>provided</scope>\r\n</dependency>\r\n
\r\nClean Installupdate project của bạn lại nhé. Vậy là xong.\r\n\r\nb. Apply Lombox vào IDE Eclipse làm theo các bước sau:\r\n\r\nGiải nén lombok.zip vào thư mục của eclipse của bạn\"\"\r\n\r\nEdit file eclipse.iniadd plugin lombok như hình bên dưới:\r\n\r\n-javaagent:lombox/lombok.jar\r\n-Xbootclasspath/a:lombox/lombok.jar\r\n\r\n\"\"\r\n\r\nVậy là chúng ta đã sẵn sàng cho một sự thay đổi mới và tốt đẹp hơn.\r\n\r\n2. Sử dụng Lombok trong dự án\r\n\"\"Chỉ với 1 Annotation @Data mà ta đã có thể hô biến 1 class dài loằng ngằng xuống còn chưa tới 15 dòng, thật thật không thể tin nỗi, thật tuyệt vời.\r\n\r\nAnnotation được hiểu là một dạng chú thích hoặc một dạng siêu dữ liệu (metadata) được dùng để cung cấp thông tin dữ liệu cho mã nguồn Java. Các chú thích không có ảnh hưởng trực tiếp đến hoạt động của mã mà chúng chú thích.\r\n\r\nGiải thích:\r\n\r\n\"\"\r\n\r\nSau đây là các Annotations thường được sử dụng trong dự án\r\n\r\nConstructor gồm có 3 sự lựa chọn như sau:\r\n\r\n@NoArgsConstructor: Hàm khởi tạo rỗng.\r\n@AllArgsConstructor: Hàm khởi tạo chứa tất cả thuộc tính.\r\n@RequiredArgsConstructor: Hàm khởi tạo theo yêu cầu. Bạn chỉ muốn hàm khởi tạo có vài thuộc tính do bạn chọn thôi, thì bạn thêm final trước thuộc tính trong class, nó sẽ tự sinh ra Constructor như thế.\r\n\r\n\"\"\r\n\r\n@Getter và @Setter\r\nKhi bạn chỉ muốn generate mỗi Get/Set và không muốn dùng @Data vì nó quá nhiều chức năng, thì có thể xài 2 chiêu thức này.\r\n\r\n\"\"\r\n\r\nNhưng giả sử chúng ta chỉ muốn get/set một số thuộc tính, thay đổi phạm vi truy cập của mothod hay hiệu chỉnh thêm code liên quan trong các hàm get/set thì phải làm sao. Với Lombok thì mọi thứ cực kỳ dễ dàng, các bạn xem hình sau nhé.\r\n\r\n\"\"\r\n\r\n@Builder câu thần chú dành cho những người lười biếng. Chắc hẳn ai cũng ngại khi viết 1 class Builder cổ điển phải không, tự dưng phải tạo thêm 1 class nữa, gấp đôi số lượng thuộc tính khai báo, gấp đôi số hàm cần viết. Nhưng với LomBok mọi thứ cứ nói là EZZZZZZ.\r\n\r\n\"\"\r\n\r\n \r\n\r\nTrong bài viết này mình chỉ giới thiệu những tính năng thường được chúng ta sử dụng, Lombok thực sự còn rất nhiều khẩu quyết và tâm pháp cực kỳ độc đáo nhé (mình không nói ra hết, sợ nói hết các bạn mất vui và không còn cảm giác sung sướng khi mò mẫm trong đám cỏ nữa thì thật là tội lỗi thiện style thiện style), bạn có thể tham thảo và ngiên cứu thêm tại link này https://projectlombok.org/features/all \r\n\r\nSau khi tu thành chính quả thì hãy nhớ một like cho bài viết nhé. Thank you.\r\n\r\nCảm ơn các bạn đã đọc hết bài viết, theo dõi SuSuDev để cập nhật các bài viết mới và thú vị nhé!\r\n\r\nNếu các bạn có bất kỳ thắc mắc hoặc góp ý xin vui lòng để lại bình luận bên dưới nhé!\r\n\r\nCảm ơn các bạn!\r\n\r\nNhớ ghi nguồn https://susudev.com khi đăng tải lại bài viết này