Cài đặt bộ xử lý ngoại lệ toàn cục trong Spring MVC để trả về JSON

Trong các ứng dụng Spring MVC hiện đại, việc trả về phản hồi dạng JSON khi xảy ra lỗi là yêu cầu phổ biến. Thay vì sử dụng JSP để render lỗi — phương pháp đã lỗi thời và không phù hợp với kiến trúc API — ta nên triển khai HandlerExceptionResolver một cách thuần túy, kết hợp với @ResponseBody và cấu hình đúng kiểu nội dung (MIME type) để đảm bảo ...

Đăng vào ngày 29 tháng 6 lúc 06:15

JWT: Cấu trúc và Ứng dụng trong Xác thực Web

JSON Web Token (JWT) là tiêu chuẩn mở dựa trên JSON (RFC 7519) dùng để truyền tải thông tin xác thực giữa các hệ thống mạng. Token này được thiết kế gọn nhẹ, an toàn và đặc biệt phù hợp cho các ứng dụng phân tán như SSO. JWT cho phép trao đổi thông tin mà không cần lưu trữ phiên trên máy chủ, giảm thiểu chi phí xử lý.Quá trình xác thực không tr ...

Đăng vào ngày 28 tháng 6 lúc 22:44

Tích Hợp Message Queue ActiveMQ và RabbitMQ Vào Dự Án Spring Boot

Message Queue (MQ) đóng vai trò trung gian trong việc lưu trữ và chuyển tiếp thông điệp giữa các dịch vụ, hoạt động tương tự như hệ thống bưu chính. Mục tiêu chính của kỹ thuật này là hỗ trợ xử lý bất đồng bộ và giảm sự phụ thuộc chặt chẽ giữa các module (decoupling). Về mặt quy trình sử dụng, MQ có nét tương đồng với cơ sở dữ liệu khi cần thiế ...

Đăng vào ngày 27 tháng 6 lúc 00:55

Giải pháp kiểm tra từ nhạy cảm trong ứng dụng Java

Có thể xây dựng chức năng kiểm tra từ nhạy cảm như một dịch vụ dùng chung, hỗ trợ linh hoạt và dễ tích hợp vào nhiều hệ thống. 1. Thư viện cần thiết <dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive-word</artifactId> <version>0.17.0</version> </dependency> 2. Cấ ...

Đăng vào ngày 26 tháng 6 lúc 08:05

Bắt đầu với Spring Boot

Spring Boot là một framework giúp đơn giản hóa việc phát triển ứng dụng Java, đặc biệt trong môi trường web. Nó kế thừa triết lý "convention over configuration" từ Spring, cho phép khởi chạy ứng dụng chỉ với vài dòng code. Cách Spring đơn giản hóa Java Sử dụng POJO và dependency injection để giảm độ phức tạp. Tích hợp sẵn các thư viện phổ ...

Đăng vào ngày 26 tháng 6 lúc 01:21

HTTP PATCH trong Spring Boot: Cập nhật từng phần và thiết kế API RESTful

Trong kiến trúc RESTful, việc cập nhật tài nguyên một cách hiệu quả đòi hỏi sự phân biệt rõ ràng giữa các phương thức HTTP. Phương thức PATCH đóng vai trò then chốt khi chỉ cần thay đổi một số trường nhất định mà không ảnh hưởng đến phần còn lại của đối tượng. 1. Bản chất và vai trò của PATCH PATCH là một phương thức HTTP dùng để thực hiện cậ ...

Đăng vào ngày 25 tháng 6 lúc 10:30

Tích hợp Flink CDC với PostgreSQL: Lưu trữ và khôi phục checkpoint tùy chỉnh

Để tích hợp Flink CDC với PostgreSQL trong môi trường Spring Boot và thay thế cơ chế lưu trữ checkpoint mặc định (RocksDB/HDFS) bằng cơ sở dữ liệu quan hệ, cần triển khai một lớp lưu trữ checkpoint tùy chỉnh dựa trên giao diện CheckpointStorage của Flink. Giải pháp dưới đây tập trung vào việc lưu trữ metadata checkpoint và trạng thái liên quan ...

Đăng vào ngày 24 tháng 6 lúc 20:30

Tích hợp thanh toán WeChat Mini Program phiên bản V3 với Java backend

Để triển khai thanh toán qua WeChat Mini Program theo chuẩn API v3 (JSAPI), cần hoàn tất các bước thiết lập ban đầu và tích hợp đồng bộ giữa frontend và backend. Dưới đây là hướng dẫn kỹ thuật đã được tái cấu trúc, loại bỏ yếu tố thương mại và tập trung vào luồng xử lý kỹ thuật thuần túy. Yêu cầu khởi tạo hệ thống Hồ sơ pháp lý: Giấy phép ...

Đăng vào ngày 23 tháng 6 lúc 23:25

Khởi tạo dự án Spring Boot 2.7.5 với cấu hình cơ bản

Cấu trúc dự án và phụ thuộc Maven Một dự án Spring Boot tiêu chuẩn cần kế thừa spring-boot-starter-parent để quản lý phiên bản và cấu hình mặc định. Các starter như spring-boot-starter-web là bắt buộc nếu bạn xây dựng ứng dụng web, trong khi spring-boot-starter-test có thể thêm vào để hỗ trợ kiểm thử. <?xml version="1.0" encoding="UTF-8"?&g ...

Đăng vào ngày 23 tháng 6 lúc 22:52

Cấu hình xác thực người dùng với Spring Security

1. Thiết lập dự án 1.1 Thêm các dependency cần thiết Ngoài các dependency có sẵn, cần thêm thủ công dependency cho Druid connection pool: <!--Khai báo druid connection pool--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version&gt ...

Đăng vào ngày 23 tháng 6 lúc 16:07