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表示式,並將內容賦值給屬性
${..}主要用於載入外部屬性檔案中的值
#{..}和${..}可以混合使用,但是必須#{}外面,${}在裡面