Bài 7. Sử Dụng Lombok Đúng Cách Trong Spring Boot

  Рет қаралды 4,499

Tây Java - Lập Trình Java Từ A~Z

Tây Java - Lập Trình Java Từ A~Z

Күн бұрын

Hướng dẫn sử dụng Lombok đúng cách
Source code: github.com/luo...
Các khoá học của Tây Java
1. Java core tiếng việt: (Beginner, Fresher, Junior, Senior): tayjava.vn/kho...
2. Spring Boot Full Kỹ Năng: (Junior): tayjava.vn/kho...
3. Bảo mật API Backend (Senior): tayjava.vn/kho...
4. Java Backend Full Steps (Senior): tayjava.vn/lap...
5. Microservice Full Series (Senior): tayjava.vn/thi...
Thông tin liên hệ Tây Java
Số ĐT/Zalo: 0975118228
Email: quoctay87@gmail.com
Cộng đồng Tây Java: chat.whatsapp....
Fan page: / tayjv

Пікірлер: 38
@LonNguyenVan-yn6hj
@LonNguyenVan-yn6hj 8 ай бұрын
Sau khi làm qua PHP và Python, giờ cũng phải quay về Java. Mặc dù trước đó em không thể nào thẩm được. Nhưng qua cách giảng giải của anh, chi tiết và rõ ràng. Em đã nắm được khái quát về java. Mong a luôn có sức khỏe và nhiệt huyết để làm các video tiếp theo. Về VueJS hoặc các công nghệ hay ho khác. Cảm ơn anh.
@tayjava
@tayjava 8 ай бұрын
Cảm ơn e nha!
@hunghong9632
@hunghong9632 8 ай бұрын
4:20 em thấy mấy trang web hay viết DTO kiểu này. - Từ java 14 ra đời immutable class: Record . Đặc điểm của Record là không thể kế thừa, các thuộc tính là final, chỉ có getters, có constructor có đầy đủ tham số và toString. Nếu muốn constructor chỉ định thì phải tự định nghĩa. Theo như vài bài viết em đọc thì nó là Good Practice cho DTO - Nếu dùng Lombok thì dùng các Anotation: @Getter, @AllArgsConstructor, @ToString là đủ chưa ạ => Vậy theo a khi định nghĩa DTO nhận request từ client , thì anh hay dùng cái nào. Và anh có đánh giá về Record như thế nào ạ.
@tayjava
@tayjava 8 ай бұрын
Để xuất của anh là e dùng cái nào thì thêm cái đó nhé! Với record a có áp dụng cho 1 dự án rồi nên a thấy có thể dùng ở một số case như khởi tạo bean service, repository hay 1 số bean đc định nghĩa từ component. Còn dto dùng record định nghĩa thì nhọc lém dùng lombok cho đỡ vất và e ạ. Suy cho cùng lập trình là biến những thứ phúc tạp trở nên đơn giản hơn mà chứ ko phải là biến cho mọi thứ trở nên phức tạp và ko hiểu hơn e nhé
@huynguyenuc2648
@huynguyenuc2648 6 ай бұрын
Constructor mặc định(Không có parameter truyền vào) chỉ tự động khởi tạo trong trường hợp lớp đó không có bất kỳ constructor nào khác, nhưng nếu mình dùng @AllArgsConstructor thì nó sẽ tạo ra một constructor được truyền vào với tất cả các parameter của lớp, nên nếu không dùng @NoArgsConstructor thì không thể tự khởi tạo một constructor không có parameter truyền vào. Cài này không riêng java mà cả c++ cũng thế. Mong anh sửa lại chứ sai kiến thức thế này thì chết.
@tayjava
@tayjava 6 ай бұрын
Ấy zà! Vậy trước kia lombok chưa ra đời e nghĩ tụi già như bọn code như thế nào nó chạy đây?? Lombok chỉ là plugin cắm vào để bớt các thao tác thủ công thôi ơi chứ nó đâu phải core java chứ ! E có thể nghiên cứu thêm về jvm để hiểu chỗ này sâu hơn nha
@phucminh8354
@phucminh8354 6 ай бұрын
@@tayjava ở phiên bản spring, lombok mới thì em làm theo các của anh sẽ báo lỗi ạ
@vuilenemoi
@vuilenemoi 9 ай бұрын
Hay quá a, học cuốn thực sự❤❤❤
@tayjava
@tayjava 9 ай бұрын
E like và share đi chứ :))
@16.nguyenxuannhatminh45
@16.nguyenxuannhatminh45 4 ай бұрын
sao em k thấy mấy bài 1,2,3,4 về service entity ạ
@tayjava
@tayjava 4 ай бұрын
E vào playlist học theo danh sách phát nhé, mấy bài jpa từ bài 14 cơ
@16.nguyenxuannhatminh45
@16.nguyenxuannhatminh45 4 ай бұрын
@@tayjava e cảm ơn ạ
@lapnghiepshopee
@lapnghiepshopee 6 ай бұрын
nếu class có constructor có tham số thì vẫn cần phải có constructor k tham số chứ a?
@quangminh4232
@quangminh4232 5 ай бұрын
quá tuyệt vời. Cám ơn anh
@yifangqk
@yifangqk 8 ай бұрын
cho e hỏi khi nào dùng toBuilder đc vậy ạ?
@tayjava
@tayjava 8 ай бұрын
Khi e muốn tạo 1 bản copy từ bản chính Widget testWidget = Widget.builder() .name("foo") .id(1) .build(); Widget.WidgetBuilder widgetBuilder = testWidget.toBuilder(); Widget newWidget = widgetBuilder.id(2).build();
@duyhoangta7988
@duyhoangta7988 8 ай бұрын
Cho em hỏi ngu phát, nếu e sử dụng @Data, mặc dù e biết nó thừa thì sẽ sẽ gây ảnh hưởng gì tới project của chúng ta ạ?
@tayjava
@tayjava 8 ай бұрын
Nó ko gây lỗi nhưng nhiều code thừa -> cái này gọi là code ko sạch e ạ. E muốn ứng dụng của mình có chất lượng cao thì cần tỷ mỷ từng tý e nhé
@duyhoangta7988
@duyhoangta7988 8 ай бұрын
@@tayjava cái tỉ mỉ từng tý một thì em okie. Nhưng em đang muốn hỏi để tradeoff, ví dụ nếu a phải đánh giá à cái này thời điểm này nó cần setter thôi thì thêm sett, thời điểm tiếp thấy cần getter a thêm getter, sau a thấy toátrinf a thêm tostrinf, sau nhận ra rằng thêm @data cho nhanh. Nếu việc đó nó k quá ảnh hưởng và chấp nhận dk thì nên chọn những annotation cover dk 80% cái mình cần dùng, để dành thời gian phát triển sản phẩm được nhanh hơn.
@tayjava
@tayjava 8 ай бұрын
@@duyhoangta7988 nếu là như vậy thì e dùng đúng rồi đó!
@tathanh203
@tathanh203 8 ай бұрын
dùng record để tạo DTO dc ko a
@tayjava
@tayjava 8 ай бұрын
Đc thì có đc nhưng nhọc thôi e, dùng lombok thì tự động hoá còn record thì mình phải làm thủ công
@nvtmjfan
@nvtmjfan 9 ай бұрын
Vậy @noarg để làm gì, tôi không nghĩ nó vô nghĩa, ví dụ của bạn đó là khi ko có cả 2 annotations allarg và noarg, bạn thử thêm chỉ allarg xem sao, rất có thể sẽ ko có constructor noarg trong file .class
@tayjava
@tayjava 9 ай бұрын
Nó không vô nghĩa bạn ơi ! Nhưng nó chỉ cần thiết khi chúng ta định nghĩa entity thôi còn dto thì ko cần nha
@ucaoxuan9256
@ucaoxuan9256 8 ай бұрын
nếu bạn không cung cấp bất kỳ một constructor nào thì java sẽ tự động thêm một constructor không tham số cho class, còn nếu bạn cung cấp một constructor bất kỳ thì constructor mặc định không tham số sẽ không được tự động thêm nữa, khi đó nếu tạo mới một object bằng từ khóa new với constructor không tham số sẽ báo lỗi compile, do vậy @NoArgsConstructor dành cho trường hợp này
@tvu67
@tvu67 8 ай бұрын
hay qua, tks ban nhe
@SangTran-ef1hm
@SangTran-ef1hm 5 ай бұрын
Best practice của mình khi tạo dto + lombok sẽ là @Value @NoArgConstructor(force = true, access = AccessLevel.PRIVATE) @AllArgConstructor Khi làm với cách này thì sẽ không bị conflict với tụi jackson
@creatorkids6284
@creatorkids6284 8 ай бұрын
Hay quas a
@hieutranhuu1048
@hieutranhuu1048 8 ай бұрын
Hay quá a ơi
@nvtentertainment4098
@nvtentertainment4098 6 ай бұрын
10đ
@hoctai6723
@hoctai6723 9 ай бұрын
em thắc mắc chỗ @NoArgsConstructor nếu không có nó sẽ vẫn tạo constructor NoArgs mặc định, nhưng khi dùng ObjectMapper để map từ string sang Object, nó báo lỗi thiếu constructor NoArgs , khi thêm @NoArgsConstructor hoặc constructor vào thì hết lỗi và hoạt động bình thường anh giải đáp lý do giúp em
@tayjava
@tayjava 9 ай бұрын
Cái này do nó bị xung đột giữa 2 thư viện e nhé! E fix đc lỗi là okie rồi nha không cần quá cố chấp e ạ, e hiểu ý nghĩa và cách dùng của nó là tốt rồi
@hoctai6723
@hoctai6723 9 ай бұрын
@@tayjava vâng a, mà qua video em cũng thấy một điểm khác nữa là khi anh dùng @Builder mà nó không yêu cầu constructor có tham số, còn e dùng mình builder nó sẽ báo là cần nhỉ
@tayjava
@tayjava 9 ай бұрын
E xem lại source code a để ở phần mô tả video ấy xem khác nhau gì ko? Xem lại version lombok có giống cái a đang dùng ko nhé
@capproc1119
@capproc1119 7 ай бұрын
Bản chất của constructor mặc định là chỉ xuất hiện khi không có constructor nào được tạo bất kỳ, nếu tồn tại constructor nào đó thì mặc định vô hiệu, trong video do ko có bất cứ constructor nào nên nó không bị lỗi, nhưng thử thêm @AllArgsConstructor và không có @NoArgsConstructor thì khi gọi constructor no args thì sẽ lỗi biên dịch ngay.
Bài 8. Cấu Hình Đa Ngôn Ngữ Cho Ứng Dụng Spring Boot
13:30
Tây Java - Lập Trình Java Từ A~Z
Рет қаралды 2,6 М.
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
DHH discusses SQLite (and Stoicism)
54:00
Aaron Francis
Рет қаралды 105 М.
Bài 12. Đóng Gói Ứng Dụng Spring Boot với Docker
38:20
Tây Java - Lập Trình Java Từ A~Z
Рет қаралды 3,9 М.
10 Spring and Spring Boot Common Mistakes You Need To STOP
15:49
Amigoscode
Рет қаралды 162 М.
JAVA DTO Pattern Tutorial | Simplify Your Code
19:12
Amigoscode
Рет қаралды 219 М.
4. Tính Kế Thừa Trong Java | Java Inheritance
33:54
Tây Java - Lập Trình Java Từ A~Z
Рет қаралды 356
Python laid waste to my C++!
17:18
Sheafification of G
Рет қаралды 187 М.
Loại Database giúp Generative AI  bùng nổ | Vector Database Wecommit
17:12
Trần Quốc Huy - Databases
Рет қаралды 43 М.
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН