Sự khác biệt giữa sync() và syncAndReturnAll() trong ShardedJedisPipeline
Giải thích từ tài liệu chính thức
Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Để lấy giá trị trả về từ các lệnh pipeline, hãy bắt các đối tượng Response khác nhau đã thực thi.
Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Cố gắng tránh sử dụng phiên bản này và ...
Đăng vào ngày 7 tháng 6 lúc 04:00
Java: Điều chỉnh kích thước hình ảnh từ Base64 theo tỷ lệ hoặc không theo tỷ lệ đến kích thước mục tiêu
Điều chỉnh theo tỷ lệ
Cần thiết: Hình ảnh được tải lên từ giao diện người dùng dưới dạng chuỗi Base64, cần điều chỉnh kích thước mà vẫn giữ nguyên tỷ lệ của hình ảnh.
Thực hiện mã: Sử dụng công cụ xử lý hình ảnh: Thumbnailator
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbn ...
Đăng vào ngày 7 tháng 6 lúc 01:29
Nguyên lý và Ứng dụng MapStruct trong Java
Nhu cầu ánh xạ đối tượng
Bối cảnh sử dụng
Trong kiến trúc phân tầng Java, ánh xạ thuộc tính giữa các đối tượng xuất hiện phổ biến:
Entity ↔ DTO: Tách biệt dữ liệu giữa tầng lưu trữ và nghiệp vụ
DTO ↔ VO: Lược bỏ trường không cần thiết giữa dịch vụ và giao diện
API ↔ Mô hình nội bộ: Cách ly mô hình bên ngoài và bên trong
So sánh giải pháp
Ph ...
Đăng vào ngày 7 tháng 6 lúc 00:24
Jakarta EE: Thay Thế Cho Java EE và Tác Động Đến Phát Triển Phần Mềm
Nhiều lập trình viên Java khi sử dụng phiên bản mới của Spring 6 hoặc Spring Boot 3 đã gặp phải các gói có tiền tố jakarta. Khi đọc mã nguồn của công cụ quản lý quy trình làm việc mở Camunda, tôi cũng phát hiện ra sự xuất hiện rộng rãi của các gói jakarta.
assembly - Mã nguồn Java và các bài kiểm tra cho ứng dụng web Camunda dựa trên không gi ...
Đăng vào ngày 6 tháng 6 lúc 21:07
Nguyên tắc thiết kế hướng đối tượng
Nguyên tắc thiết kế hướng đối tượng là nền tảng để xây dựng phần mềm có khả năng bảo trì, mở rộng và tái sử dụng cao. Dưới đây là các nguyên tắc thiết kế hướng đối tượng chính:
Nguyên tắc SOLID
1.1 Nguyên tắc trách nhiệm đơn lẻ (SRP)
Một lớp chỉ nên có một lý do để thay đổi
// Vi phạm SRP
class NguoiDung {
private String hoTen;
priva ...
Đăng vào ngày 6 tháng 6 lúc 18:52
Ứng Dụng HMAC Trong Bảo Mật Tin Nhắn
HMAC và Các Thuật Toán Liên Quan
HMAC (Hash-based Message Authentication Code) là một thuật toán mã hóa dùng để xác thực tin nhắn dựa trên hàm băm. Nó kết hợp cả khóa mật mã và hàm băm để tạo ra một giá trị xác thực cho tin nhắn, đảm bảo tính toàn vẹn và nguồn gốc của dữ liệu.
Các Bước Tạo HMAC
Chọn một hàm băm phù hợp như MD5, SHA-1, hoặc ...
Đăng vào ngày 6 tháng 6 lúc 02:19
Triển Khai Hàng Đợi FIFO trong Java: So Sánh LinkedList và ArrayDeque
Hàng đợi (Queue) tuân theo nguyên tắc FIFO (Vào trước ra trước) là cấu trúc dữ liệu cơ bản trong lập trình, đặc biệt hữu ích cho các tác vụ xử lý tuần tự như quản lý tác vụ, bộ đệm dữ liệu. Trong Java, hai lớp chính hỗ trợ triển khai hàng đợi hiệu quả là LinkedList và ArrayDeque, đều cung cấp giao diện Queue từ thư viện Collections Framework.
...
Đăng vào ngày 5 tháng 6 lúc 20:57
Java 8 - Biểu thức Lambda: Truy cập Biến bên ngoài
Truy cập Biến bên ngoài trong Biểu thức Lambda
Trong Java 8, biểu thức Lambda có khả năng truy cập các biến từ phạm vi bên ngoài. Tuy nhiên, không phải mọi biến bên ngoài đều có thể được Lambda truy cập. Chỉ những biến được khai báo là final hoặc thực sự không thể thay đổi (effectively final) mới có thể được tham chiếu trong biểu thức Lambda. Đ ...
Đăng vào ngày 5 tháng 6 lúc 17:25
Xử lý JSON động trong Java với Jackson JsonNode
Lớp JsonNode trong Jackson cung cấp mô hình cây (Tree Model) để thao tác JSON mà không cần định nghĩa trước cấu trúc. Đây là lựa chọn lý tưởng khi làm việc với dữ liệu JSON linh hoạt, không cố định hoặc có độ lồng ghép phức tạp.
Các loại node cơ bản
ObjectNode: Đại diện cho đối tượng JSON {}, hỗ trợ thêm/sửa/xóa thuộc tính.
ArrayNode: Đại ...
Đăng vào ngày 5 tháng 6 lúc 16:10
Hướng dẫn quản trị và triển khai ứng dụng trên hệ điều hành Linux
1. Tổng quan về hệ điều hành Linux
Trong quy trình phát triển phần mềm chuyên nghiệp, lập trình viên thường tiếp xúc với ba loại môi trường chính:
Môi trường phát triển (Development): Nơi viết mã nguồn (thường là Windows hoặc macOS).
Môi trường kiểm thử (Testing/Staging): Bản sao của môi trường chạy thật để kiểm tra lỗi.
Môi trườn ...
Đăng vào ngày 5 tháng 6 lúc 16:00