首頁 > Java > java教程 > 如何在Spring中配置註解的Bean中註入屬性值?

如何在Spring中配置註解的Bean中註入屬性值?

Mary-Kate Olsen
發布: 2024-11-09 05:06:02
原創
537 人瀏覽過

How Can I Inject Property Values into Beans Configured with Annotations in Spring?

在 Spring 中使用註解配置的 Bean 中的屬性注入

在 Spring 中,Bean 通常使用註解進行配置,以簡化依賴注入和類路徑掃描。但是,如果您需要從外部來源(例如屬性檔案)注入屬性值,您可能會遇到挑戰。

問題陳述

考慮一個註解為Spring bean 的Java 類別:

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    // Implementation omitted
}
登入後複製

此bean 是透過註解配置的,您希望將app.properties 檔案中的屬性值注入其中。然而,由於該 bean 未在 Spring XML 檔案中聲明,因此通常的 不能使用元素方法。

使用 EL 支持進行屬性注入

Spring 提供 EL(表達式語言)支持,可以將屬性直接注入到帶註釋的 bean 中。為此:

  1. 將以下依賴項加入專案的 pom.xml 中:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.23</version>
</dependency>
登入後複製
  1. 使用 @Value 註解注入屬性值:
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    @Value("${results.max}")
    private int maxResults;
    // Implementation omitted
}
登入後複製

從屬性注入屬性的範例Object

您也可以使用@Value 從Properties 物件注入屬性:

@Autowired
private Properties myProperties;
@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
登入後複製

其他資訊

  • systemProperties 物件提供對系統屬性的存取。
  • @Value 也可以應用在欄位直接注入。
  • 了解更多詳情請參考這篇部落格文章:[Spring中使用@Value和EL支援進行屬性注入](https://www.baeldung.com/spring-property-injection-value)。

以上是如何在Spring中配置註解的Bean中註入屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板