Sử dụng properties trong Spring với annotation @Value

Trong bài viết này, mình sẽ giới thiệu với các bạn làm cách nào để sử dụng properties trong Spring với annotation @Value các bạn nhé!

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

Sử dụng properties trong Spring với annotation @Value

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

Spring framework dependency:

Class HelloWorld:

Class Application:

configuration.properties

spring.xml




Để sử dụng properties với @Value annotation, chúng ta cần khai báo các bean trong Spring sử dụng các annotation như: @Component, @Service, @Repository, @Controller,…

Trong ví dụ này, mình muốn khai báo đối tượng HelloWorld trong khung chứa của Spring và sử dụng @Value annotation để gán giá trị cho thuộc tính name của đối tượng HelloWorld này bằng giá trị của property name trong tập tin configuration.properties thì mình sẽ làm như sau:

Đầu tiên, mình sẽ khai báo thẻ context:component-scan trong tập tin spring.xml để enable khả năng auto component scan trong Spring cho package com.huongdanjava.springvalueanntation:

Cái thứ hai mình sẽ khai báo @Component annotation bên trong class HelloWorld để khởi tạo bean HelloWorld trong khung chứa của Spring:

Cuối cùng, mình sẽ sử dụng @Value annotation để ingest giá trị của property name trong tập tin configuration.properties vào thuộc tính name trong đối tượng HelloWorld như sau:

Ở đây, mình đã khai báo @Value annotation với giá trị là ${property_name}.

Kết quả:

Sử dụng properties trong Spring với annotation @Value



Trong trường hợp, property name không tồn tại, lỗi sau sẽ xuất hiện khi chúng ta chạy ứng dụng lên:

Để tránh lỗi này, trong trường hợp property name không tồn tại, chúng ta có thể thay thế bằng giá trị mặc định bằng cách khai báo @Value annotation như sau:

Kết quả:

Sử dụng properties trong Spring với annotation @Value

4.3/5 - (3 bình chọn)

5 thoughts on “Sử dụng properties trong Spring với annotation @Value

  1. chỗ context.getBean(“helloWorld”); cái từ helloWord nó mapping với thằng nào vậy anh. em xem trong spring.xml không thấy cái bean nào có id như vậy và của em nó báo lỗi không tìm thấy cái bean nào có id là ‘helloWorld’.

Add Comment