Tập tin .properties là những tập tin dùng để cấu hình các thông tin cho ứng dụng. Đây là những thông tin có thể thay đổi trong quá trình chúng ta phát triển và deploy ứng dụng lên môi trường production. Những thông tin này sẽ được định nghĩa với các cặp key và value trong tập tin .properties, ví dụ như sau:
1 2 |
env=DEV huongdanjava.base.url=https://huongdanjava.com |
Để làm việc với các tập tin .properties trong Java, chúng ta có thể sử dụng đối tượng của class Properties:
1 |
Properties properties = new Properties(); |
Các bạn có thể sử dụng các phương thức load() của đối tượng Properties này với tham số có thể là một Reader hoặc là một InputStream để đọc nội dung của tập tin .properties.
Ví dụ tập tin config.properties của mình với nội dung như trên nằm trong thư mục src/main/resources của project:
Để đọc nội dung của tập tin config.properties này, mình sẽ định nghĩa một InputStream như sau:
1 2 |
Path path = Paths.get("src", "main", "resources", "config.properties"); InputStream inputStream = new FileInputStream(path.toFile()); |
Bây giờ thì mình có thể đọc nội dung tập tin config.properties sử dụng phương thức load() như sau:
1 |
properties.load(inputStream); |
Sau khi đã đọc xong, các bạn có thể lấy thông tin các property trong tập tin này sử dụng phương thức getProperty() của đối tượng Properties, ví dụ như sau:
1 |
System.out.println(properties.getProperty("env")); |
Kết quả:
Các bạn có thể gán giá trị mặc định trong trường hợp property mà chúng ta đang cần tìm kiếm không có sử dụng phương thức getProperty() với 2 tham số là tên property và giá trị mặc định, ví dụ như sau:
1 |
System.out.println(properties.getProperty("test", "Testing")); |
Trong tập tin config.properties không có property “test” nên nếu mình chạy lại ví dụ này, các bạn sẽ thấy giá trị mặc định được trả về như sau:
Các bạn cũng có thể thêm mới và modify giá trị của các property sau khi đã đọc tập tin .properties sử dụng phương thức setProperty(), ví dụ như sau:
1 2 3 4 5 |
properties.setProperty("test", "Testing"); properties.setProperty("env", "PROD"); System.out.println(properties.getProperty("test")); System.out.println(properties.getProperty("env")); |
Ở ví dụ trên, mình thêm mới property “test” và cập nhập giá trị của property “env”. Giờ thì chạy ví dụ, các bạn có thể thấy kết quả như sau:
Mặc dù, giá trị của property “env” trong tập tin config.properties là “DEV” nhưng giờ thì giá trị của property này đã là “PROD” rồi đó các bạn!
Các bạn cũng có thể remove property nếu muốn, ví dụ như sau:
1 2 3 |
properties.remove("env"); System.out.println(properties.getProperty("env")); |
Kết quả sẽ như sau: