Trong bài viết này, mình sẽ giới thiệu với các bạn cách đọc properties files trong Spring sử dụng util namespace các bạn nhé!
Đầu tiên, mình sẽ tạo một Maven project để làm ví dụ minh hoạ:
Trong đó, nội dung của class Application như sau:
1 2 3 4 5 6 7 8 9 10 11 |
package com.huongdanjava.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); } } |
Spring dependency:
1 2 3 4 5 |
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.0.3</version> </dependency> |
Mình sẽ sử dụng Java cho ví dụ này:
1 2 3 4 |
<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> |
Trong ví dụ của mình thì 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
1 2 3 4 5 |
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans> |
configuration.properties
1 |
app.author=Khanh Nguyen |
Bây giờ, mình sẽ cấu hình util namespace trong tập tin cấu hình của Spring để nó có thể đọc những properties có trong tập tin configuration.properties lên cho ứng dụng của chúng ta có thể sử dụng.
Đầu tiên, các bạn cần phải khai báo sử dụng util namespace là một thuộc tính của thẻ <beans> như sau:
1 2 3 4 5 6 7 |
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> </beans> |
Tiếp theo, các bạn sẽ sử dụng util namespace để đọc properties files như sau:
1 |
<util:properties id="properties" location="classpath:configuration.properties" /> |
Trong khai báo trên, mình đã sử dụng thẻ <util:properties> để khai báo đường dẫn của tập tin properties.
Điểm đặc biệt với util namespace là với khai báo trên, các properties sẽ được đọc vào một đối tượng của class java.util.Properties với biến chính là tên của id, trong ví dụ của mình thì nó là biến properties. Khi sử dụng các properties với util namespace thì cách sử dụng cũng dễ dàng hơn.
Các bạn có thể kiểm tra lại điều này bằng cách thêm một số dòng code vào class Application như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com.huongdanjava.spring; import java.util.Properties; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Properties p = (Properties) context.getBean("properties"); System.out.println(p.get("app.author")); } } |
Khi đó, kết quả sẽ là:
Util namespace cũng hỗ trợ chúng ta thuộc tính ignore-resource-not-found để ứng dụng của chúng ta không bị lỗi khi đường dẫn của tập tin properties không tồn tại.
Khai báo như sau nhé các bạn:
1 |
<util:properties id="properties" location="classpath:configuration.properties" ignore-resource-not-found="true" /> |