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.

hibernate ORM

Hibernate ORM bên trong chạy thế nào: 4 trạng thái vòng đời của Entity (Transient, Persistent, Detached, Removed), Dirty Checking tự động qua Loaded Snapshots, First-Level vs Second-Level Cache, và cách tiết kiệm bộ nhớ với @Transactional(readOnly = true).

project Lombok

Lombok can thiệp vào Abstract Syntax Tree (AST) thế nào dù JSR 269 không cho phép, những cái bẫy hay gặp trên Production (JPA @Data, @EqualsAndHashCode với kế thừa, @Builder với Jackson, @SneakyThrows) và cách thay bằng Java Records & MapStruct.

custom annotations trong java

Annotation trong Java chạy thế nào bên trong JVM: bytecode attribute, dynamic proxy, meta-annotation của Spring (@AliasFor), rồi tự viết một custom annotation dùng Spring AOP và SpEL để làm rate limiting phân tán dùng được cho production.

Spring Security annotations

Kiến trúc bảo mật của Spring Security: hai lớp phòng thủ FilterChain và AOP Method Security, SpEL trong @PreAuthorize, bẫy Side-Effect của @PostAuthorize, vấn đề hiệu năng của @PostFilter và cách thiết lập Role Hierarchy cho production.

Criteria API trong Hibernate

Viết dynamic query trong Java enterprise cho đàng hoàng: Hibernate 6 SQM chạy bên dưới ra sao, JPA Metamodel Generator, Spring Data Specification, cái bẫy fetch join với N+1 và phân trang, kèm bảng so sánh Criteria API, Specification, QueryDSL và jOOQ.

spring profiles và externalized config

Quản lý cấu hình trong Spring Boot cho bài bản: nguyên tắc 12-Factor Config, thứ tự ưu tiên giữa các PropertySource, spring.config.import (Spring Boot 2.4+), kết hợp HashiCorp Vault & Kubernetes ConfigMaps, và reload nóng với @RefreshScope.

spring test annotations

Ghi chú về các Spring Test annotations để viết Unit Test và Integration Test trong Spring Boot: @SpringBootTest, test slices, @MockitoBean/@MockitoSpyBean (thay @MockBean/@SpyBean), Testcontainers.

ioc container & application context

IoC Container là phần lõi của Spring Framework: tự khởi tạo, nối và quản lý vòng đời của các object (Beans) thông qua Dependency Injection. **Application Context** là bản mở rộng (interface) của IoC Container, ngoài các tính năng cơ bản còn có thêm event, đa ngôn ngữ (i18n), tích hợp AOP và nhiều thứ khác.