Chuyển tới nội dung chính

Cấu hình chung

Quy ước property

Mọi property do thư viện cung cấp đều dùng tiền tố govex.* — ví dụ govex.cache.type, govex.lock.enabled. Property được khai báo trong application.yml như cấu hình Spring Boot thông thường; tên đầy đủ của mỗi property thuộc namespace nghiệp vụ của dependency tương ứng.

Cơ chế auto-configuration

Mỗi dependency là một Spring Boot starter/auto-configuration: chỉ cần thêm dependency vào classpath, nó tự đăng ký cấu hình qua file META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports của chính nó, không cần khai báo bean thủ công.

Một số dependency mặc định tắt và chỉ hoạt động khi bật bằng cờ riêng, ví dụ:

  • govex.lock.enabled (mặc định false) — bật khóa phân tán LockTemplate và annotation @Lock.
  • govex.ratelimit.enabled (mặc định false) — bật giới hạn tần suất request với annotation @RateLimit.

Ví dụ cấu hình

Cache và lock là hai ví dụ tiêu biểu cho quy ước govex.*:

govex:
cache:
# Loại cache: embedded, external, composite hoặc none
type: external
external:
# Implementation external cache: redis hoặc redisson
type: redis
lock:
enabled: true

Trong đó:

  • govex.cache.type — loại cache sử dụng, một trong các giá trị embedded, external, composite, none.
  • govex.cache.external.type — implementation cache external, hiện hỗ trợ redis hoặc redisson.
  • govex.lock.enabled — bật tính năng khóa phân tán (mặc định false).

Gợi ý property trong IDE

Mỗi dependency đóng gói metadata property trong META-INF/additional-spring-configuration-metadata.json (ví dụ của govex-cloud-cachegovex-cloud-lock). Nhờ đó IDE (IntelliJ IDEA, VS Code...) gợi ý đúng tên property, kiểu dữ liệu và mô tả ngay khi soạn application.yml.

Logging

Các dependency ghi log qua SLF4J với logger nằm trong namespace vn.govex.cloud.*. Có thể điều chỉnh mức log theo property chuẩn của Spring Boot:

logging:
level:
vn.govex.cloud: DEBUG

Ngoài log kỹ thuật, dependency govex-cloud-log cung cấp ghi log nghiệp vụ/audit qua annotation @SysLog/@Trace — chi tiết sẽ có trong tài liệu nhóm Bảo mật & định danh.