<?xml version="1.0" encoding="UTF-8" ?>
<rss
    version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:webfeeds="http://webfeeds.org/rss/1.0"
    xmlns:media="http://search.yahoo.com/mrss/"
    >
    <channel>
        <title>Java Tag - Viblo</title>
        <link>https://viblo.asia/rss</link>
        <description><![CDATA[Free service for technical knowledge sharing]]></description>
        <atom:link href="https://viblo.asia/rss/tags/java.rss" rel="self"></atom:link>
                <copyright>Sun* Inc.</copyright>
                                                <webfeeds:logo>https://viblo.asia/logo_full.svg</webfeeds:logo>
        <image>
            <url>https://viblo.asia/logo_full.svg</url>
            <title>Java Tag - Viblo</title>
            <link>https://viblo.asia/rss</link>
        </image>
                                <language>vi-vn</language>
        <lastBuildDate>2026-09-12T00:33:40+07:00</lastBuildDate>
                <item>
            <title><![CDATA[Cấu hình server cho Java Spring Boot: CPU, RAM, JVM và Nginx cho production]]></title>
                        <link>https://viblo.asia/p/cau-hinh-server-cho-java-spring-boot-cpu-ram-jvm-va-nginx-cho-production-gjLN0W1w432</link>
            <guid isPermaLink="true">https://viblo.asia/p/cau-hinh-server-cho-java-spring-boot-cpu-ram-jvm-va-nginx-cho-production-gjLN0W1w432</guid>
            <description><![CDATA[Java Spring Boot phù hợp để xây dựng API, backend cho website, hệ thống nội bộ, microservice và các ứng dụng doanh nghiệp. Tuy nhiên, việc đưa một ứng...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vinh Phạm</dc:creator>
            <pubDate>2026-08-22 15:24:54</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Java Threads và Concurrency: Từ CPU, Thread Pool đến Virtual Threads]]></title>
                        <link>https://viblo.asia/p/java-threads-va-concurrency-tu-cpu-thread-pool-den-virtual-threads-Nj4vgaOqJ6r</link>
            <guid isPermaLink="true">https://viblo.asia/p/java-threads-va-concurrency-tu-cpu-thread-pool-den-virtual-threads-Nj4vgaOqJ6r</guid>
            <description><![CDATA[Hãy tưởng tượng một service nhận 10.000 request cùng lúc.

Một số request cần CPU để parse JSON, hash hoặc nén dữ liệu. Một số đang chờ database. Một ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hưng Phạm</dc:creator>
            <pubDate>2026-08-10 15:38:12</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Queue: cơ bản là căn bản]]></title>
                        <link>https://viblo.asia/p/queue-co-ban-la-can-ban-kY4gDpPOJAe</link>
            <guid isPermaLink="true">https://viblo.asia/p/queue-co-ban-la-can-ban-kY4gDpPOJAe</guid>
            <description><![CDATA[Queue là một cấu trúc phổ biến và tồn tại trong hầu hết các loại phần mềm. Ý tưởng ban đầu khá giống việc bạn xếp hàng chờ thanh toán ở siêu thị, ai đ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hùng Phạm</dc:creator>
            <pubDate>2026-08-08 23:12:32</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 9: Ưu tiên try-with-resources thay cho try-finally]]></title>
                        <link>https://viblo.asia/p/bai-9-uu-tien-try-with-resources-thay-cho-try-finally-18J2exR54YK</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-9-uu-tien-try-with-resources-thay-cho-try-finally-18J2exR54YK</guid>
            <description><![CDATA[Bad practice thường gặp (hướng cũ)

Vì sao cách này không tốt

- Khi có nhiều resource lồng nhau, code nhanh chóng rối và dài.
- Dễ sai sót thứ tự đón...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 17:13:24</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 8: Tránh finalizer và cleaner]]></title>
                        <link>https://viblo.asia/p/bai-8-tranh-finalizer-va-cleaner-K9Vy87n0LQR</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-8-tranh-finalizer-va-cleaner-K9Vy87n0LQR</guid>
            <description><![CDATA[Bad practice thường gặp (hướng cũ)

Vì sao cách này không tốt

- Thời điểm chạy finalizer/cleaner là không xác định.
- Không đảm bảo được sẽ chạy kịp ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 17:04:03</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 7: Loại bỏ obsolete object references]]></title>
                        <link>https://viblo.asia/p/bai-7-loai-bo-obsolete-object-references-gdJzv89EJz5</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-7-loai-bo-obsolete-object-references-gdJzv89EJz5</guid>
            <description><![CDATA[Bad practice thường gặp (hướng cũ)

Vì sao cách này không tốt

- Object đã “không còn dùng” về mặt logic nhưng vẫn bị giữ reference vật lý.
- Garbage ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 16:14:25</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 6: Tránh tạo object không cần thiết]]></title>
                        <link>https://viblo.asia/p/bai-6-tranh-tao-object-khong-can-thiet-1XVOW8n8VMz</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-6-tranh-tao-object-khong-can-thiet-1XVOW8n8VMz</guid>
            <description><![CDATA[Bad practice thường gặp (tạo object dư thừa)

Vì sao cách này không tốt

- Mỗi lần gọi matches là mỗi lần compile regex mới.
- Ở hot path, chi phí tạo...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 09:53:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 5: Ưu tiên dependency injection thay vì hardcode resource]]></title>
                        <link>https://viblo.asia/p/bai-5-uu-tien-dependency-injection-thay-vi-hardcode-resource-R5JRQ8704Gv</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-5-uu-tien-dependency-injection-thay-vi-hardcode-resource-R5JRQ8704Gv</guid>
            <description><![CDATA[Bad practice thường gặp (làm theo hướng cũ)

Vấn đề của cách này:

- SpellChecker bị khóa cứng vào FileLexicon.
- Khó test vì không thể thay bằng mock...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 09:52:09</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 4: Buộc Class không thể được khởi tạo bằng constructor private]]></title>
                        <link>https://viblo.asia/p/bai-4-buoc-class-khong-the-duoc-khoi-tao-bang-constructor-private-37LdeXngVov</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-4-buoc-class-khong-the-duoc-khoi-tao-bang-constructor-private-37LdeXngVov</guid>
            <description><![CDATA[Bad practice thường gặp (hướng cũ)

Vấn đề của cách này:

- Utility class bị khởi tạo dù instance là vô nghĩa.
- Người dùng API có thể hiểu sai mục đí...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-08 09:50:54</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 3: Thực thi tính chất singleton bằng constructor private hoặc enum type]]></title>
                        <link>https://viblo.asia/p/bai-3-thuc-thi-tinh-chat-singleton-bang-constructor-private-hoac-enum-type-1XVOW7D1VMz</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-3-thuc-thi-tinh-chat-singleton-bang-constructor-private-hoac-enum-type-1XVOW7D1VMz</guid>
            <description><![CDATA[Bài toán
Giá sử chúng ta tự triển khai một hệ thống loging đơn giản như sau
Ở khắp nơi trong hệ thống của chúng ta sẽ liên tục làm điều này
Vấn đề là ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-04 13:21:18</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Effective Java - Builder Pattern cho Class Hierarchy: Khi Builder không còn đơn giản]]></title>
                        <link>https://viblo.asia/p/effective-java-builder-pattern-cho-class-hierarchy-khi-builder-khong-con-don-gian-wd43ENlQLX9</link>
            <guid isPermaLink="true">https://viblo.asia/p/effective-java-builder-pattern-cho-class-hierarchy-khi-builder-khong-con-don-gian-wd43ENlQLX9</guid>
            <description><![CDATA[Trong bài viết trước, chúng ta đã tìm hiểu lý do vì sao Builder Pattern là một giải pháp hiệu quả khi một class có quá nhiều constructor parameters.

...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-03 23:13:04</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 2: Consider a builder when faced with many constructor parameters]]></title>
                        <link>https://viblo.asia/p/bai-2-consider-a-builder-when-faced-with-many-constructor-parameters-AWVpXYv3V05</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-2-consider-a-builder-when-faced-with-many-constructor-parameters-AWVpXYv3V05</guid>
            <description><![CDATA[Static factory và constructor có chung một hạn chế: chúng không mở rộng tốt khi số lượng tham số tùy chọn (optional parameters) trở nên quá lớn. Hãy x...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-03 15:41:00</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bài 1: Sử dụng static factory methods thay vì sử dụng constructors]]></title>
                        <link>https://viblo.asia/p/bai-1-su-dung-static-factory-methods-thay-vi-su-dung-constructors-13VM9wA8VY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/bai-1-su-dung-static-factory-methods-thay-vi-su-dung-constructors-13VM9wA8VY7</guid>
            <description><![CDATA[Static factory method và constructor là gì?
Như các bạn đã biết, Java là ngôn ngữ lập trình hướng đối tượng, các thành phần cấu thành nên một chương t...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anh Hoàng Tuấn</dc:creator>
            <pubDate>2026-06-02 18:04:11</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Composition Hay Inheritance? Bài Học Thực Chiến Từ Strategy Pattern]]></title>
                        <link>https://viblo.asia/p/composition-hay-inheritance-bai-hoc-thuc-chien-tu-strategy-pattern-wd43EZ03LX9</link>
            <guid isPermaLink="true">https://viblo.asia/p/composition-hay-inheritance-bai-hoc-thuc-chien-tu-strategy-pattern-wd43EZ03LX9</guid>
            <description><![CDATA[Có một cái cây inheritance mà mình từng nhìn vào và không biết nên khóc hay nên cười. Nó sâu 7 tầng. VNPayFlashSaleDiscountPaymentService extends VNPa...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Quốc Bảo Nguyễn</dc:creator>
            <pubDate>2026-05-24 08:59:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Redis không cứu được hệ thống của team mình]]></title>
                        <link>https://viblo.asia/p/redis-khong-cuu-duoc-he-thong-cua-team-minh-gjLN0Mw1432</link>
            <guid isPermaLink="true">https://viblo.asia/p/redis-khong-cuu-duoc-he-thong-cua-team-minh-gjLN0Mw1432</guid>
            <description><![CDATA[Có một giai đoạn mình nghĩ Redis là “nút turbo” cho backend.
API chậm? Cache.
DB nóng? Cache.
Traffic tăng? Cache.
Rồi production bắt đầu cháy theo nh...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bảo Quốc</dc:creator>
            <pubDate>2026-05-21 14:02:43</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[ Git không đáng sợ… cho đến khi lịch sử commit của team bạn nhìn như bát mì Ý]]></title>
                        <link>https://viblo.asia/p/git-khong-dang-so-cho-den-khi-lich-su-commit-cua-team-ban-nhin-nhu-bat-mi-y-bNVQGod2JvR</link>
            <guid isPermaLink="true">https://viblo.asia/p/git-khong-dang-so-cho-den-khi-lich-su-commit-cua-team-ban-nhin-nhu-bat-mi-y-bNVQGod2JvR</guid>
            <description><![CDATA[ Mở bài: Git ban đầu là công cụ quản lý source code…
… nhưng vào tay nhiều team, nó thành trò chơi sinh tồn.

Chuyện về những nhánh chồng chéo, confli...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mr Hyu</dc:creator>
            <pubDate>2026-05-13 12:35:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[ Từ Java Backend Developer đến AI-Augmented Developer: Tôi dùng GPT/Codex để code nhanh hơn, đỡ “toang” hơn như thế nào?]]></title>
                        <link>https://viblo.asia/p/tu-java-backend-developer-den-ai-augmented-developer-toi-dung-gptcodex-de-code-nhanh-hon-do-toang-hon-nhu-the-nao-3RL1BYNkVao</link>
            <guid isPermaLink="true">https://viblo.asia/p/tu-java-backend-developer-den-ai-augmented-developer-toi-dung-gptcodex-de-code-nhanh-hon-do-toang-hon-nhu-the-nao-3RL1BYNkVao</guid>
            <description><![CDATA[  Từ một thằng dev cắm mặt CRUD… đến người biết “sai AI làm”

Ngày xưa, đời Java Backend Developer của tôi khá đơn giản:

1. ☀️ Sáng mở máy
1.  Trưa f...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mr Hyu</dc:creator>
            <pubDate>2026-05-13 11:10:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Những hiểu lầm ngớ ngẩn về JPA mà tôi đã từng mắc khi đi làm]]></title>
                        <link>https://viblo.asia/p/nhung-hieu-lam-ngo-ngan-ve-jpa-ma-toi-da-tung-mac-khi-di-lam-QyJKz7YM4Me</link>
            <guid isPermaLink="true">https://viblo.asia/p/nhung-hieu-lam-ngo-ngan-ve-jpa-ma-toi-da-tung-mac-khi-di-lam-QyJKz7YM4Me</guid>
            <description><![CDATA[Mở đầu
Trước đây, khi vừa ra trường và gõ những dòng code enterprise đầu tiên, đã có một thời gian tôi nghĩ rằng bản thân đã thực sự hiểu tường tận JP...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lucaaa</dc:creator>
            <pubDate>2026-05-13 10:35:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coding - Java]]></title>
                        <link>https://viblo.asia/p/coding-java-QyJKz7e74Me</link>
            <guid isPermaLink="true">https://viblo.asia/p/coding-java-QyJKz7e74Me</guid>
            <description><![CDATA[Phần 4: Coding của bài thi đầu vào bank T đỏ.

Question
Find the count of uppercase characters in the given string.

Note:
Uppercase characters or cap...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ông Huy Thắng</dc:creator>
            <pubDate>2026-04-30 20:18:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tôi Xóa Toàn Bộ JSP Khỏi Spring Boot — Và Đây Là Lý Do]]></title>
                        <link>https://viblo.asia/p/toi-xoa-toan-bo-jsp-khoi-spring-boot-va-day-la-ly-do-G24B8G7OLz3</link>
            <guid isPermaLink="true">https://viblo.asia/p/toi-xoa-toan-bo-jsp-khoi-spring-boot-va-day-la-ly-do-G24B8G7OLz3</guid>
            <description><![CDATA[Tháng trước, tôi mở lại một dự án Spring Boot mình đã bắt đầu từ đầu năm:  Shop thương mại điện tử cho mẹ và bé.

Có giỏ hàng, thanh toán MoMo, chatbo...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ng Vi</dc:creator>
            <pubDate>2026-05-01 08:16:48</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Hướng dẫn cài đặt AnythingLLM và tích hợp Chatbot AI vào website EzyPlatform]]></title>
                        <link>https://viblo.asia/p/huong-dan-cai-dat-anythingllm-va-tich-hop-chatbot-ai-vao-website-ezyplatform-18J2e8E04YK</link>
            <guid isPermaLink="true">https://viblo.asia/p/huong-dan-cai-dat-anythingllm-va-tich-hop-chatbot-ai-vao-website-ezyplatform-18J2e8E04YK</guid>
            <description><![CDATA[Từ khi các mô hình ngôn ngữ lớn (LLM) bùng nổ, việc tích hợp chatbot AI vào các nền tảng như Zalo hay Telegram đã trở nên quá quen thuộc. Tuy nhiên, v...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hiếu Phạm Văn</dc:creator>
            <pubDate>2026-03-17 16:07:28</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Hướng dẫn deploy lên máy chủ Ubuntu và trỏ tên miền]]></title>
                        <link>https://viblo.asia/p/huong-dan-deploy-len-may-chu-ubuntu-va-tro-ten-mien-AWVpX1XYV05</link>
            <guid isPermaLink="true">https://viblo.asia/p/huong-dan-deploy-len-may-chu-ubuntu-va-tro-ten-mien-AWVpX1XYV05</guid>
            <description><![CDATA[Chào các bạn! 

Nếu bạn đang làm việc với Java và đặc biệt là EzyPlatform - một framework "make in Vietnam" cực kỳ mạnh mẽ để phát triển Game Server v...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hiếu Phạm Văn</dc:creator>
            <pubDate>2026-03-06 14:05:02</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Hướng dẫn khởi tạo và Import dự án Book Store với EzyPlatform vào IntelliJ IDEA]]></title>
                        <link>https://viblo.asia/p/huong-dan-khoi-tao-va-import-du-an-book-store-voi-ezyplatform-vao-intellij-idea-8X4Ej31oJN2</link>
            <guid isPermaLink="true">https://viblo.asia/p/huong-dan-khoi-tao-va-import-du-an-book-store-voi-ezyplatform-vao-intellij-idea-8X4Ej31oJN2</guid>
            <description><![CDATA[Trong kiến trúc của EzyPlatform, việc khởi tạo dự án và thiết lập môi trường là bước nền tảng quyết định tính ổn định của quy trình phát triển. Tài li...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hiếu Phạm Văn</dc:creator>
            <pubDate>2026-01-22 23:20:20</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[16 Fact có thể bạn chưa biết trong Java]]></title>
                        <link>https://viblo.asia/p/16-fact-co-the-ban-chua-biet-trong-java-ZoJjewv74Y7</link>
            <guid isPermaLink="true">https://viblo.asia/p/16-fact-co-the-ban-chua-biet-trong-java-ZoJjewv74Y7</guid>
            <description><![CDATA[Hãy đọc và chấm điểm bạn biết được bao nhiêu fact nhé.

1. char không phải ASCII

char là UTF-16 code unit (16 bit).

Nên emoji cần 2 char.

2. boolea...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tran Nhan</dc:creator>
            <pubDate>2026-01-20 07:50:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[CẶP BÀI TRÙNG SPRING BOOT &amp; TEMPORAL]]></title>
                        <link>https://viblo.asia/p/cap-bai-trung-spring-boot-temporal-1QLxnaOg4Aw</link>
            <guid isPermaLink="true">https://viblo.asia/p/cap-bai-trung-spring-boot-temporal-1QLxnaOg4Aw</guid>
            <description><![CDATA[![](https://images.viblo.asia/6337325d-6f38-48d8-8f8e-7d354aacb8be.jpeg)



Nếu Spring Boot là chiếc khiên ️ vững chãi, giúp chúng ta dựng lên các Ser...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Đỗ Khắc Phong</dc:creator>
            <pubDate>2026-01-05 11:01:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Làm Chủ Spring `@Scope(&quot;prototype&quot;)`]]></title>
                        <link>https://viblo.asia/p/lam-chu-spring-atscopeprototype-2vJPdEGlJeK</link>
            <guid isPermaLink="true">https://viblo.asia/p/lam-chu-spring-atscopeprototype-2vJPdEGlJeK</guid>
            <description><![CDATA[1\. Giới Thiệu: @Scope("prototype") Là Gì?

Annotation @Scope("prototype") trong Spring Framework là một cấu hình quan trọng để quản lý vòng đời (life...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tommy Le</dc:creator>
            <pubDate>2025-12-16 21:56:59</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tích hợp Spotless Formatter (Google Style) vào Dự Án Gradle (AI Writing)]]></title>
                        <link>https://viblo.asia/p/tich-hop-spotless-formatter-google-style-vao-du-an-gradle-ai-writing-ZoJjee8e4Y7</link>
            <guid isPermaLink="true">https://viblo.asia/p/tich-hop-spotless-formatter-google-style-vao-du-an-gradle-ai-writing-ZoJjee8e4Y7</guid>
            <description><![CDATA[ Hướng Dẫn Kỹ Thuật:

Sử dụng Spotless Formatter kết hợp với Google Java Format là phương pháp tốt nhất để tự động định dạng và duy trì code nhất quán...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tommy Le</dc:creator>
            <pubDate>2025-12-10 19:08:57</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Thêm và Tùy Chỉnh Checkstyle trong Dự Án Java Gradle (AI Writing)]]></title>
                        <link>https://viblo.asia/p/them-va-tuy-chinh-checkstyle-trong-du-an-java-gradle-ai-writing-QyJKzzvw4Me</link>
            <guid isPermaLink="true">https://viblo.asia/p/them-va-tuy-chinh-checkstyle-trong-du-an-java-gradle-ai-writing-QyJKzzvw4Me</guid>
            <description><![CDATA[⚙️ Hướng Dẫn Kỹ Thuật:

Tài liệu này hướng dẫn từng bước cách tích hợp và tùy chỉnh công cụ Checkstyle trong dự án Gradle, bằng cách tải về và chỉnh s...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tommy Le</dc:creator>
            <pubDate>2025-12-10 15:00:05</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Hành trình &quot;vượt ải&quot; Backend: Tự học OOP,  Interface vs Abstract]]></title>
                        <link>https://viblo.asia/p/hanh-trinh-vuot-ai-backend-tu-hoc-oop-interface-vs-abstract-vbLbjjAbLnk</link>
            <guid isPermaLink="true">https://viblo.asia/p/hanh-trinh-vuot-ai-backend-tu-hoc-oop-interface-vs-abstract-vbLbjjAbLnk</guid>
            <description><![CDATA[
Chào mọi người, mình là Hoàn.

Dạo gần đây mình bắt đầu học lập trình nghiêm túc hơn, và thứ đầu tiên quật mình chính là OOP (Object-Oriented-Program...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoàn Hải</dc:creator>
            <pubDate>2025-12-11 11:36:54</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Spring Boot : Dependency Injection (DI) Chìa khoá để code xịn và dễ bảo trì]]></title>
                        <link>https://viblo.asia/p/spring-boot-dependency-injection-di-chia-khoa-de-code-xin-va-de-bao-tri-kNLr33G7VgA</link>
            <guid isPermaLink="true">https://viblo.asia/p/spring-boot-dependency-injection-di-chia-khoa-de-code-xin-va-de-bao-tri-kNLr33G7VgA</guid>
            <description><![CDATA[Khi mới bắt đầu học lập trình hướng đối tượng hoặc các framework như Spring Boot, thuật ngữ Dependency Injection (DI) chắc chắn sẽ làm ta bối rối.Nghe...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoàn Hải</dc:creator>
            <pubDate>2025-12-05 23:07:08</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tách biệt Entity vào Thư viện riêng trên GitHub Packages (AI Writing)]]></title>
                        <link>https://viblo.asia/p/tach-biet-entity-vao-thu-vien-rieng-tren-github-packages-ai-writing-wlVmRR7845Z</link>
            <guid isPermaLink="true">https://viblo.asia/p/tach-biet-entity-vao-thu-vien-rieng-tren-github-packages-ai-writing-wlVmRR7845Z</guid>
            <description><![CDATA[Mô-đun hóa Spring Boot:

Bài viết này hướng dẫn kiến trúc tách các logic nghiệp vụ dùng chung (Entities, Enums, Repositories) thành một thư viện độc l...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tommy Le</dc:creator>
            <pubDate>2025-12-05 12:14:53</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Logic của `spring.config.import` &amp; Thứ tự ưu tiên (AI Writing)]]></title>
                        <link>https://viblo.asia/p/logic-cua-springconfigimport-thu-tu-uu-tien-ai-writing-8X4Ejj9XJN2</link>
            <guid isPermaLink="true">https://viblo.asia/p/logic-cua-springconfigimport-thu-tu-uu-tien-ai-writing-8X4Ejj9XJN2</guid>
            <description><![CDATA[Phiên bản: Spring Boot 2.4+

1. Giới thiệu: Vấn đề & Giải pháp
Trong các dự án Microservices, việc quản lý file cấu hình (application.yml hoặc applica...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tommy Le</dc:creator>
            <pubDate>2025-12-04 17:40:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Mac là cỗ máy &quot;chiến&quot; cho lập trình viên Java. Đây là những phần mềm minh chứng cho điều đó]]></title>
                        <link>https://viblo.asia/p/mac-la-co-may-chien-cho-lap-trinh-vien-java-day-la-nhung-phan-mem-minh-chung-cho-dieu-do-oKLnqqvXJQO</link>
            <guid isPermaLink="true">https://viblo.asia/p/mac-la-co-may-chien-cho-lap-trinh-vien-java-day-la-nhung-phan-mem-minh-chung-cho-dieu-do-oKLnqqvXJQO</guid>
            <description><![CDATA[Vậy là bạn đã có trong tay chiếc Mac bóng loáng, sẵn sàng tạo ra những dòng code Java đỉnh cao. Nhưng một cỗ máy tuyệt vời mới chỉ là một nửa câu chuy...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ryan Stone</dc:creator>
            <pubDate>2025-11-20 14:03:08</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[JVM và Hiệu Năng Bất Ngờ Khi Bạn “Đặt Sai Tên Biến”]]></title>
                        <link>https://viblo.asia/p/jvm-va-hieu-nang-bat-ngo-khi-ban-dat-sai-ten-bien-oKLnqq6GJQO</link>
            <guid isPermaLink="true">https://viblo.asia/p/jvm-va-hieu-nang-bat-ngo-khi-ban-dat-sai-ten-bien-oKLnqq6GJQO</guid>
            <description><![CDATA[Một buổi tối muộn, bạn vô tình deploy code lên production với biến usrNme thay vì userName - và đột nhiên API response time giảm 47ms. Có phải bạn vừa...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tran Nhan</dc:creator>
            <pubDate>2025-10-30 16:32:05</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Nền tảng Caching trong Hệ thống Backend]]></title>
                        <link>https://viblo.asia/p/nen-tang-caching-trong-he-thong-backend-1QLxnnDp4Aw</link>
            <guid isPermaLink="true">https://viblo.asia/p/nen-tang-caching-trong-he-thong-backend-1QLxnnDp4Aw</guid>
            <description><![CDATA[Trước hết: Đây là bài viết mình tổng hợp bằng AI trong quá trình tìm hiểu nhằm mục đích ôn tập nên sẽ có nhiều chỗ sai sót và chưa đúng nghiệp vụ chuẩ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">phucmouse</dc:creator>
            <pubDate>2025-10-21 05:09:24</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tomcat, Jetty hay Undertow? Hướng dẫn chọn Java Web Server hiệu năng cao]]></title>
                        <link>https://viblo.asia/p/tomcat-jetty-hay-undertow-huong-dan-chon-java-web-server-hieu-nang-cao-bA468xvlLKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/tomcat-jetty-hay-undertow-huong-dan-chon-java-web-server-hieu-nang-cao-bA468xvlLKv</guid>
            <description><![CDATA[Khi phát triển ứng dụng Java, việc chọn web server phù hợp là một yếu tố then chốt để đảm bảo hiệu năng, khả năng mở rộng và dễ bảo trì. Ba lựa chọn p...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hưng Phạm</dc:creator>
            <pubDate>2025-09-13 18:17:19</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Project Loom: Cuộc cách mạng xử lý đồng thời trong Java]]></title>
                        <link>https://viblo.asia/p/project-loom-cuoc-cach-mang-xu-ly-dong-thoi-trong-java-oKLnqBoQJQO</link>
            <guid isPermaLink="true">https://viblo.asia/p/project-loom-cuoc-cach-mang-xu-ly-dong-thoi-trong-java-oKLnqBoQJQO</guid>
            <description><![CDATA[Trong suốt nhiều thập kỷ, Java đã nổi tiếng với khả năng đa luồng (multithreading). Từ các ứng dụng desktop đến hệ thống phân tán, từ ứng dụng web đến...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hưng Phạm</dc:creator>
            <pubDate>2025-09-13 09:59:55</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[GraalVM – Tương lai của Java trong kỷ nguyên Cloud-native]]></title>
                        <link>https://viblo.asia/p/graalvm-tuong-lai-cua-java-trong-ky-nguyen-cloud-native-gdJzvbgGJz5</link>
            <guid isPermaLink="true">https://viblo.asia/p/graalvm-tuong-lai-cua-java-trong-ky-nguyen-cloud-native-gdJzvbgGJz5</guid>
            <description><![CDATA[1. Giới thiệu

Trong nhiều năm qua, Java Virtual Machine (JVM) là nền tảng đáng tin cậy cho các ứng dụng doanh nghiệp, từ hệ thống ngân hàng đến các n...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hưng Phạm</dc:creator>
            <pubDate>2025-09-13 09:28:13</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Không cần viết code từ đầu nữa! Tổng hợp đầy đủ các lớp tiện ích tích hợp sẵn tiện lợi trong Spring]]></title>
                        <link>https://viblo.asia/p/khong-can-viet-code-tu-dau-nua-tong-hop-day-du-cac-lop-tien-ich-tich-hop-san-tien-loi-trong-spring-wlVmR1Or45Z</link>
            <guid isPermaLink="true">https://viblo.asia/p/khong-can-viet-code-tu-dau-nua-tong-hop-day-du-cac-lop-tien-ich-tich-hop-san-tien-loi-trong-spring-wlVmR1Or45Z</guid>
            <description><![CDATA[Giới thiệu

Xin chào! Trong quá trình phát triển hàng ngày, tôi đã phát hiện ra một "trợ thủ đắc lực" được tích hợp sẵn trong Spring Framework. Hôm na...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sky blue</dc:creator>
            <pubDate>2025-09-05 15:48:15</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu về Docker]]></title>
                        <link>https://viblo.asia/p/tim-hieu-ve-docker-OXLA0QzZJGr</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-ve-docker-OXLA0QzZJGr</guid>
            <description><![CDATA[Giới thiệu
Docker là gì ? Tại sao dùng Docker ? Nếu tìm kiếm trên internet sẽ có khá nhiều thông tin, tài liệu về Docker và trước đây mình gặp một chú...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2025-09-11 20:51:23</pubDate>
                                                                                                        </item>
            </channel>
</rss>
