Profile trong Spring Boot
Một ứng dụng thường cần có các cấu hình và xử lý mã logic khác nhau cho từng môi trường khác nhau. Spring Boot cung cấp hỗ trợ đơn giản cho việc này.
Từ khóa:
@Profile
,spring.profiles.active
Cấu hình cho từng môi trường
Cấu hình bằng properties
Giả sử, một ứng dụng có các môi trường là: dev, test, prod
Chúng ta có thể thêm 4 tệp cấu hình:
applcation.properties
- Cấu hình chungapplication-dev.properties
- Cấu hình cho môi trường phát triểnapplication-test.properties
- Cấu hình cho môi trường kiểm thửapplication-prod.properties
- Cấu hình cho môi trường sản xuất
Trong tệp applcation.properties
, chúng ta có thể sử dụng cấu hình sau để kích hoạt profile:
Cấu hình bằng yml
Tương tự như tệp properties, chúng ta cũng có thể thêm 4 tệp cấu hình:
applcation.yml
- Cấu hình chungapplication-dev.yml
- Cấu hình cho môi trường phát triểnapplication-test.yml
- Cấu hình cho môi trường kiểm thửapplication-prod.yml
- Cấu hình cho môi trường sản xuất
Trong tệp applcation.yml
, chúng ta có thể sử dụng cấu hình sau để kích hoạt profile:
Ngoài ra, tệp yml cũng có thể hoàn thành tất cả cấu hình cho các profile trong cùng một tệp:
Lưu ý: Sử dụng ---
để phân tách giữa các profile khác nhau.
Phân biệt mã code cho từng môi trường
Sử dụng chú thích @Profile
cho phép chỉ định lớp hoặc phương thức chỉ hoạt động trong môi trường Profile cụ thể.
Chú thích lớp
Chú thích tùy chỉnh
Chú thích phương thức
Kích hoạt profile
Kích hoạt profile bằng plugin
spring-boot:run -Drun.profiles=prod
Kích hoạt profile bằng phương thức main
--spring.profiles.active=prod
Kích hoạt profile bằng file jar
java -jar -Dspring.profiles.active=prod *.jar
Kích hoạt profile trong mã Java
Kích hoạt profile trực tiếp bằng biến môi trường:
Kích hoạt profile trong Spring container: