The Mystery of Spring MVC Annotation Failure - Part 1

Spring MVC is widely adopted across many teams at Meituan Dianping for web development. In projects built upon Spring MVC, annotations are extensively used throughout various modules — from standard Java annotations like @Override and @Deprecated, to Spring-specific ones such as @Controller, @Service, and @Autowired, and even custom-defined ann ...

Đăng vào ngày 23 tháng 9 lúc 10:26

Hệ thống ghi log trong Spring Boot và cách cấu hình

1. Giới thiệu về log trong ứng dụng Trong quá trình phát triển phần mềm, việc ghi log đóng vai trò then chốt. Nếu không có log, khi ứng dụng gặp lỗi, chúng ta sẽ rất khó xác định nguyên nhân và vị trí lỗi để khắc phục. Nhờ có log, chúng ta có thể phát hiện lỗi, định vị chính xác vị trí và xử lý kịp thời. Trong giai đoạn học lập trình cơ bản, ...

Đăng vào ngày 23 tháng 9 lúc 09:58

Cơ bản về Rust: Biến kiểu dữ liệu, điều khiển luồng và tổ chức mã nguồn

Rust là ngôn ngữ lập trình hệ thống hiện đại với khả năng quản lý bộ nhớ an toàn mà không cần garbage collector. Bài viết này tổng hợp những khái niệm cốt lõi khi bắt đầu làm việc với Rust. Thiết lập môi trường phát triển Công cụ quản lý phiên bản chuẩn của Rust là rustup. Cài đặt thông qua terminal: curl --proto '=https' --tlsv1.2 -sSf http ...

Đăng vào ngày 23 tháng 9 lúc 08:41

Xử lý lỗi Cross-Origin Resource Sharing (CORS) với PHP và AJAX

Khi phát triển ứng dụng web, bạn thường gặp tình trạng trình duyệt chặn các yêu cầu AJAX nếu tên miền của phía gửi (client) và phía nhận (server) khác nhau. Đây được gọi là chính sách đồng nguồn (Same-Origin Policy). Để giải quyết vấn đề này, chúng ta cần cấu hình CORS (Cross-Origin Resource Sharing) trên phía server bằng PHP. Lỗi CORS phổ ...

Đăng vào ngày 23 tháng 9 lúc 07:17

Hiểu Rõ Sắp Xếp Chèn

Giới Thiệu Sắp Xếp Chèn Sắp xếp chèn (Insertion Sort) là một thuật toán sắp xếp đơn giản, hoạt động bằng cách xây dựng một mảng đã sắp xếp từng phần tử một. Nó lấy từng phần tử từ mảng chưa sắp xếp và chèn nó vào đúng vị trí trong mảng đã sắp xếp. Tưởng tượng bạn có một bộ bài và bạn muốn sắp xếp nó. Bạn có thể lấy từng lá bài và đặt nó ...

Đăng vào ngày 23 tháng 9 lúc 06:53

Nguyên tắc thiết kế chỉ mục MySQL: Tối ưu truy vấn từ độ phân biệt đến chỉ mục phủ

Mỗi chỉ mục trong MySQL vừa là công cụ tăng tốc truy vấn, vừa là chi phí cần trả khi ghi dữ liệu. Khi thêm một ch mục, các thao tác INSERT, UPDATE và DELETE đều phải duy trì thêm cấu trúc B+Tree, tiêu tốn không gian đĩa và CPU. Vì vậy, thiết kế chỉ mục hiệu quả đòi hỏi sự cân bằng giữa tốc độ đọc và chi phí ghi. 1. Ưu tiên cột có độ phân biệt ...

Đăng vào ngày 23 tháng 9 lúc 04:54

Hiểu Rõ Các Toán Tử Cơ Bản Trong Ngôn Ngữ Lập Trình C

Trong C, các biểu thức so sánh được gọi là biểu thức quan hệ, sử dụng các toán tử quan hệ để kiểm tra mối quan hệ giữa các giá trị. Dưới đây là 6 toán tử chính: > (lớn hơn) < (nhỏ hơn) >= (lớn hơn hoặc bằng) <= (nhỏ hơn hoặc bằng) == (bằng) != (khác) Mỗi biểu thức quan hệ trả về giá trị nguyên: 0 (sai) hoặc 1 (đúng). Ví dụ: 15 &lt ...

Đăng vào ngày 23 tháng 9 lúc 02:57

Vấn đề Vòng Hoa Cúc Josephus (Giải Qua Đệ Quy Từ Công Thức Đệ Tích)

Mô tả vấn đề -- Vấn đề đặt ra: Có m người đứng thành một vòng tròn, đánh số từ 0 đến m-1. Bắt đầu từ người thứ 0, họ bắt đầu đếm, người đếm đến k-1 sẽ bị loại ra khỏi vòng tròn. Người tiếp theo tiếp tục đếm từ 0 và người đếm đến k-1 tiếp theo cũng bị loại ra... quá trình này lặp lại cho đến khi chỉ còn lại một người trong vòng tròn. Cần xác địn ...

Đăng vào ngày 23 tháng 9 lúc 02:26

Giải thuật tối ưu cho bài toán cân bằng tải trên ba máy chủ

Phân tích và Tối ưu hóa Bài toán Three Servers Bài toán đặt ra yêu cầu phân chia một chuỗi các tác vụ có thời gian thực thi xác định vào ba máy chủ sao cho sự chênh lệch giữa máy chủ bận nhất và máy chủ nhàn rỗi nhất là nhỏ nhất. Hướng tiếp cận ban đầu Xét trạng thái quy hoạch động với dp[i][j][k], đại diện cho khả năng đạt được sau khi đã xét ...

Đăng vào ngày 22 tháng 9 lúc 23:38

Ba kỹ thuật triển khai ứng dụng trên máy chủ Tomcat

Để đưa một ứng dụng web lên Tomcat, môi trường cần có JDK và bản cài đặt Tomcat đang hoạt động. Sau khi Tomcat được khởi động thành công (qua tập tin startup.sh hoặc dịch vụ hệ thống), có thể áp dụng một trong ba cách triển khai bên dưới. Mỗi phương pháp đều tạo ra một đường dẫn truy cập trên trình duyệt, khác biệt ở cấp độ cấu hình và vị trí l ...

Đăng vào ngày 22 tháng 9 lúc 22:36