1. 程式人生 > >Spring中@Value註解

Spring中@Value註解

在專案中發現@value的用法有很多種

@value注入的作用:

通過@value將外部的值動態注入到Bean中。

1、可以注入普通字串

2、注入作業系統屬性

3、注入表示式結果

4、注入其他Bean屬性 

5、注入檔案資源

6、注入URL資源

@value("nomalChacter")

private String char;//注入普通字元

@value("#{sytemProperties['os.name']}")

private String systemPropertiesName;//注入作業系統

@value("#{T(java.lang.Math).random()*100.0}")

private double randomNumber;//注入表示式結果

   @Value("#{bean.name}")

   private String fromAnotherBean; // 注入其他Bean屬性:注入beanInject物件的屬性name

   @Value("classpath:com/1.txt")

   private Resource resourceFile; // 注入檔案資源

   @Value("http://www.gogle.com")

   private Resource testUrl; // 注入URL資源

通過@Value("${app.name}")語法將屬性檔案的值注入bean屬性值。

@Value("${person.name}")

private String name;

@Value("${person.name.firstName}")

private String firstName;//注入name的firstName

上面的用法中有#{}和¥{},二者有什麼區別呢

#{..}主要用於執行SpEl表示式,並將內容賦值給屬性

${..}主要用於載入外部屬性檔案中的值

#{..}和${..}可以混合使用,但是必須#{}外面,${}在裡面