Thẻ

#spring

99 Ngày Spring — Ngày 14: Bean Validation — @Valid & bộ constraint chuẩn

Ngày 14 của 99 Ngày Spring: Bean Validation khai báo luật ngay trên DTO — @Valid kích hoạt, bộ constraint chuẩn (@NotBlank vs @NotEmpty vs @NotNull, @Size, @Email, @Min/@Max), bẫy int vs Integer, validate object lồng nhau không tự lan, và lỗi 400 gom một lượt.

10 thg 8, 20265 phút0
99 Ngày Spring — Ngày 13: @RequestBody & DTO — đừng công khai entity ra API

Ngày 13 của 99 Ngày Spring: @RequestBody + Jackson deserialize JSON thành object, DTO là hợp đồng API — chặn lỗ hổng mass assignment chiều vào và rò rỉ dữ liệu chiều ra, request/response DTO khác nhau là bình thường, và Jackson annotations tinh chỉnh hợp đồng JSON.

9 thg 8, 20266 phút9
99 Ngày Spring — Ngày 12: Request mapping & tham số — @PathVariable, @RequestParam

Ngày 12 của 99 Ngày Spring: @PathVariable hứng định danh trong đường dẫn, @RequestParam hứng bộ lọc sau dấu hỏi (required/defaultValue), quy tắc chọn path hay query, mapping trùng nổ lúc khởi động, và chuẩn thiết kế URL danh từ số nhiều.

8 thg 8, 20265 phút22
99 Ngày Spring — Ngày 11: REST controller đầu tiên

Ngày 11 của 99 Ngày Spring — mở màn giai đoạn REST API: @RestController + @GetMapping mở endpoint trong 5 dòng, Jackson tự serialize object thành JSON, hành trình request qua DispatcherServlet, và thói quen vàng controller mỏng — service dày.

7 thg 8, 20265 phút14
99 Ngày Spring — Ngày 10: @Conditional & cách auto-configuration hoạt động

Ngày 10 của 99 Ngày Spring: @Conditional và họ @ConditionalOn... — bean có điều kiện, mổ xẻ auto-configuration của Boot (AutoConfiguration.imports, @ConditionalOnClass), nghệ thuật rút lui của @ConditionalOnMissingBean, và đọc CONDITIONS EVALUATION REPORT với --debug.

6 thg 8, 20266 phút63
99 Ngày Spring — Ngày 09: Profiles — cấu hình theo môi trường

Ngày 09 của 99 Ngày Spring: vì sao cần profile, config theo môi trường với on-profile & application-{profile}.yml, chọn bean bằng @Profile (cả !prod, dev | test), ba cách kích hoạt spring.profiles.active, profile group và các lời khuyên thực chiến.

6 thg 8, 20265 phút28
99 Ngày Spring — Ngày 08: Cấu hình với properties & YAML

Ngày 08 của 99 Ngày Spring: vì sao cấu hình phải ra khỏi code, application.properties vs application.yml, @Value cho giá trị lẻ, @ConfigurationProperties + record cho nhóm type-safe, relaxed binding và ghi đè bằng biến môi trường ở production.

5 thg 8, 20265 phút35
99 Ngày Spring — Ngày 07: Bean scope & lifecycle

Ngày 07 của 99 Ngày Spring: singleton/prototype/request scope, vì sao singleton phải stateless (câu phỏng vấn thread-safe kinh điển), vòng đời bean với @PostConstruct & @PreDestroy, và @Lazy cho bean nặng hiếm dùng.

4 thg 8, 20265 phút95
99 Ngày Spring — Ngày 06: @Configuration & @Bean

Ngày 06 của 99 Ngày Spring: đăng ký bean thủ công bằng @Configuration & @Bean — khi component scan không với tới (class thư viện ngoài), tiêm phụ thuộc giữa các @Bean, và CGLIB proxy giữ singleton khi gọi chéo method.

3 thg 8, 20264 phút47