Thiết kế và Hệ thống Quản lý Logistics với SpringBoot
Kiến trúc hệ thống
Hệ thống được xây dựng theo mô hình phân lớp 3-tier: frontend, backend và database. Kiến trúc này giúp hệ thống dễ bảo trì và mở rộng. Backend sử dụng SpringBoot framework để xử lý logic nghiệp vụ, RESTful API cho frontend tương tác.
Hiện thực cơ bản
Dưới đây là một số đoạn mã mẫu trong hệ thống:
Controller quản lý người dù ...
Đăng vào ngày 28 tháng 9 lúc 13:12
Cài đặt Hadoop 2.7.2 trên macOS với Homebrew
Môi trường cài đặt:
Máy tính: MacBook Air M2 2022
Ảo hóa: VMware Fusion 13
Hệ điều hành: Ubuntu 22.04
Bước 1: Cập nhật Homebrew
Đầu tiên, cập nhật Homebrew để đảm bảo phiên bản mới nhất:
brew update
Bước 2: Cài đặt JDK 8 (Temurin)
Sử dụng Homebrew để cài đặt OpenJDK 8 từ Adoptium:
brew install --cask temurin@8
Kiểm tra phiên bản Java đã cài ...
Đăng vào ngày 28 tháng 9 lúc 02:48
Sắp xếp tự nhiên trong Java với Comparable
Khái niệm Comparable và sắp xếp tự nhiên
Comparable là một interface cốt lõi trong Java, nằm trong gói java.lang, cho phép các đối tượng tự định nghĩa thứ tự sắp xếp mặc định của chính mình.
Sắp xếp tự nhiên là cách thức sắp xếp dựa trên đặc tính vốn có của dữ liệu:
Số học: Theo giá trị tăng dần hoặc giảm dần
Ký tự: Theo thứ tự bảng chữ cái Un ...
Đăng vào ngày 28 tháng 9 lúc 01:25
Tạo Bean trong Spring với FactoryBean
Các phương pháp cấu hình bean
Có ba cách chính để cấu hình bean trong Spring: sử dụng tên lớp đầy đủ (reflection), phương thức factory (factory tĩnh và factory instance), và FactoryBean. Bài viết này tập trung vào cách sử dụng FactoryBean.
Triển khai FactoryBean
FactoryBean là một interface trong Spring Framework. Dưới đây là mã nguồn của in ...
Đăng vào ngày 27 tháng 9 lúc 18:18
Phân tích quy trình phân giải DNS trong trình duyệt
Giới thiệu
Hệ thống tên miền DNS (Domain Name System) đóng vai trò quan trọng trong việc ánh xạ từ tên miền sang địa chỉ IP, vì máy tính chỉ có thể giao tiếp thông qua địa chỉ IP.
Quy trình phân giải
Lấy ví dụ khi truy cập địa chỉ mail.baidu.com trên trình duyệt Chrome:
Kiểm tra bộ nhớ đệm của trình duyệt xem đã tồn tại bản ghi IP tương ứng v ...
Đăng vào ngày 27 tháng 9 lúc 12:23
Java Core Concepts: Data Types, Operators, and Object-Oriented Programming
Data Types and Operators in Java
Java is a strongly typed language, meaning every variable and expression has a type determined at compile time. All variables must be explicitly declared with their types.
Identifiers and Basic Data Types
Identifiers are names used for classes, variables, and methods. They cannot contain spaces and may only in ...
Đăng vào ngày 26 tháng 9 lúc 19:12
Quản Lý Vòng Đời Và Tương Tác Dịch Vụ Trong OSGi: Listener, Tracker, Hook Và Declarative Services
1. Lắng Nghe Sự Kiện Dịch Vụ (Service Event Listening)
Tương tự như việc lắng nghe vòng đời của Bundle, OSGi Framework cung cấp cơ chế phát ra các sự kiện khi một dịch vụ được đăng ký, hủy đăng ký hoặc cập nhật thuộc tính. Các thành phần đã đăng ký ServiceListener sẽ tiếp nhận và xử lý những thay đổi này.
1.1. Các loại sự kiện dịch vụ
...
Đăng vào ngày 26 tháng 9 lúc 02:34
Hệ thống quản lý sinh viên với Java
Quản lý đăng nhập và người dùng
Lớp Người dùng
Thuộc tính: tên đăng nhập, mật khẩu, số CMND, số điện thoại
Giao diện chào mừng
public class HeThongQuanLy {
public static void hienThiManHinhChao(ArrayList<NguoiDung> danhSach) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("Ch ...
Đăng vào ngày 25 tháng 9 lúc 11:48
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
Các Phương Pháp Thường Dùng Trong Java-Collectors
Đối với những người yêu thích lập trình Java, việc sử dụng các phương thức trong lớp Collectors là một kỹ năng cần thiết để xử lý dữ liệu hiệu quả hơn. Dưới đây là 20 phương pháp phổ biến trong Collectors mà bạn nên biết.
Chuyển đổi thành danh sách: toList()
Dùng để tích lũy các phần tử vào một danh sách. Nó tạo ra một danh sách mới mà không l ...
Đăng vào ngày 22 tháng 9 lúc 16:10