Đọc properties files trong Spring sử dụng đối tượng PropertyPlaceholderConfigurer

Spring cung cấp cho chúng ta nhiều cách để có thể đọc các tập tin cấu hình của ứng dụng là các properties files. Trong bài viết này, mình sẽ trình bày với các bạn cách phổ biến nhất đó chính là sử dụng đối tượng PropertyPlaceholderConfigurer, các bạn nhé!

Đầu tiên, mình sẽ tạo một Maven project để làm ví dụ:

Đọc properties files trong Spring sử dụng đối tượng PropertyPlaceholderConfigurer

Với class Application có nội dung như sau:

Mình sẽ sử dụng Java 17 cho ví dụ này:

Spring framework dependency:

Trong project của mình, tập tin spring.xml chính là tập tin cấu hình của Spring còn tập tin configuration.properties là tập tin cấu hình của ứng dụng. Nội dung của những tập tin này như sau:

spring.xml

configuration.properties

Bây giờ mình sẽ sử dụng đối tượng PropertyPlaceholderConfigurer để đọc những properties có trong tập tin configuration.properties ở trên lên cho ứng dụng của chúng ta sử dụng nha các bạn!



Đơn giản nhất, chúng ta có thể khai báo đối tượng PropertyPlaceholderConfigurer trong tập tin cấu hình của Spring như sau:

Với khai báo này, Spring sẽ sử dụng đường dẫn là giá trị của property location để tìm kiếm tập tin properties và đọc tất cả các properties có trong tập tin này lên. Trong khai báo trên của mình, mình đã sử dụng biến classpath, tương ứng với đường dẫn /src/main/resources, rồi cộng với tên tập tin.

Trong quá trình start ứng dụng, nếu Spring không thể tìm thấy tập tin properties mà chúng ta đã khai báo, nó sẽ báo lỗi ngay. Ví dụ, giờ mình rename tập tin configuration.properties thành configuration1.properties thì nó sẽ báo lỗi như sau:

Để bỏ qua lỗi này thì các bạn hãy khai báo thêm một thuộc tính nữa ignoreResourceNotFound cho đối tượng PropertyPlaceholderConfigurer như sau:

Trong trường hợp mà ứng dụng của các bạn có nhiều tập tin cấu hình thì để đọc hết tất cả các properties trong các tập tin cấu hình đó, các bạn phải sử dụng thuộc tính locations của đối tượng PropertyPlaceholderConfigurer. Ví dụ, mình tạo thêm một tập tin database.properties:

Đọc properties files trong Spring sử dụng đối tượng PropertyPlaceholderConfigurer

để chứa các thông tin liên quan đến kết nối tới database cho ứng dụng với nội dung như sau:

Để đọc những thông tin database này nữa thì các bạn phải sửa lại khai báo cho đối tượng PropertyPlaceholderConfigurer như sau:

5/5 - (2 bình chọn)

4 thoughts on “Đọc properties files trong Spring sử dụng đối tượng PropertyPlaceholderConfigurer

  1. Làm sao lấy được giá trị của key “database.host” ?
    Ví dụ: khi đọc file bằng class Properties ta có cách lấy giá trị như sau
    Properties prop = new Properties();
    prop.load(….);
    System.out.println(prop.getProperty(“database.host”));

    Còn class PropertyPlaceholderConfigurer thì lấy bằng cách nào?

Add Comment