Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

All posts

I like to write about stuff I'm into. You'll find a mix of web dev articles, tech news and random thoughts from my life. Use the search below to filter by title.

postgre-sql

Đi một vòng PostgreSQL: MVCC, WAL chạy ra sao, đánh index thế nào cho đúng, và mấy kinh nghiệm tối ưu hiệu năng "xương máu" khi dùng chung với Spring Boot.

chữ ký số trong java

Chữ ký số (digital signature) trong Java, dùng qua class java.security.Signature, giúp xác thực dữ liệu đến từ đâu và chắc chắn nó chưa bị ai sửa. Cơ chế dựa trên mã hoá bất đối xứng: người gửi dùng private key để ký, người nhận dùng public key tương ứng để kiểm tra lại.

spring security với jwt

Spring Security kết hợp JWT (JSON Web Token) là cách phổ biến để bảo mật RESTful API. Thay vì stateful (Session/Cookie lưu trên server), xác thực chuyển sang stateless: mọi thông tin nằm trong token, nên hệ thống dễ scale hơn và đỡ tốn bộ nhớ trên server.

multi-module Spring Boot với Gradle

Dựng Multi-Module Spring Boot 3 với Gradle hiện đại: bỏ anti-pattern subprojects/allprojects, dùng Convention Plugins để tái sử dụng cấu hình, quản lý dependency tập trung bằng Version Catalog (libs.versions.toml), hiểu compile avoidance giữa api và implementation, và xử lý xung đột bootJar vs jar.

session, cookies & jwt

Cookie là mấy mẩu dữ liệu nhỏ nằm ngay trên trình duyệt. Khi làm đăng nhập, Session giữ trạng thái trên server và dùng cookie để mang Session ID qua lại, còn JWT thì stateless: nhét luôn thông tin người dùng đã ký vào token, server đỡ phải nhớ gì.

java concurrency

Concurrency trong Java 21 & Spring Boot 3.x: Virtual Threads, ScopedValue và các pattern xử lý bất đồng bộ trong hệ thống phân tán hiệu năng cao.

functional interfaces & lambda trong java

Lambda và Functional Interface chạy thế nào bên trong JVM: vì sao lambda không phải Anonymous Inner Class, invokedynamic và LambdaMetafactory làm gì, tại sao biến phải effectively final, và cách dựng một Policy Engine bằng hàm.