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 địnhfalse) — bật khóa phân tánLockTemplatevà annotation@Lock.govex.ratelimit.enabled(mặc địnhfalse) — 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ợredishoặcredisson.govex.lock.enabled— bật tính năng khóa phân tán (mặc địnhfalse).
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-cache và govex-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.