對注解不了解的可以看一下:
Java注解,看完就會用
首先我們要明確:
@Value 是 Spring 框架的注解。
它有什么作用呢?
作用
@Value 通過注解將常量、配置文件中的值、其他bean的屬性值注入到變量中,作為變量的初始值。
使用方式
常量注入
顧名思義,就是把一個寫死的值賦給對應(yīng)變量,形式如下:
//?注入普通字符串
@Value("Bin")
private?String?username;?
//?注入文件資源
@Value("classpath:com/test/config.xml")
private?Resource?resource;?
//?注入URL資源
@Value("http://www.baidu.com")
private?Resource?url;?
以上做法顯而易見,并不能做到動態(tài)配置。
這跟直接賦值有啥區(qū)別?
所以這種方式應(yīng)用很少,知道有這么個用法就行了。
讀取配置文件
這種是應(yīng)用最多的方式了,重點記住這種。
形式也簡單,廢話不多說,直接上代碼。
配置文件 application.properties 或者 application.yml,寫法略有不同。
application.properties:
common.name=bin
application.yml:
common:
??name:?bin
@Value("${common.name}")
private?String?name;?
//?配置文件找不到的話,給一個默認(rèn)值
@Value("${common.name:JohnDoe}")???
private?String?name;
讀取Bean的屬性
讀取Bean屬性與讀取配置文件屬性用法不一樣,前者使用 $ 符號,后者使用 # 符號。
首先將對象注冊到 Spring 容器中:
@Data
@Component
public?class?User?{
????private?String?id;
????private?String?name;
}
Bean 屬性注入:
@Value("#{user.name}")
private?String?name;
使用案例
最后我們用一個簡單案例做一個實現(xiàn)。
創(chuàng)建一個Bean對象:
@Component
@Data
public?class?Person?{
????
????@Value("bin")
????private?String?name;
????
????@Value("${age}")
????private?Integer?age;
}
配置文件:
age=22
測試:
@SpringBootTest
class?DemoApplicationTests?{
????//?讀取bean屬性
????@Value("#{person.name}")
????private?String?name;
????//?讀取bean屬性
????@Value("#{person.age}")
????private?String?age;
????
????@Test
????void?contextLoads()?{
????????System.out.println("常量注入獲取name為:"?+?name);
????????System.out.println("常量注入獲取age為:"?+?age);
????}
}
結(jié)果:
常量注入獲取name為:bin
常量注入獲取age為:22
以上就是對 @Value 的簡單介紹,其實@Value還有許多高級用法,本篇不再深入。
發(fā)類似這樣的小文章的目的都是為了將一些小知識點作為前置,為了在以后說一些艱難晦澀的內(nèi)容時少啰嗦一些基礎(chǔ)。
天下難事,必作于易;
天下大事,必作于細(xì)。
聯(lián)系我:文章來源:http://www.zghlxwxcb.cn/news/detail-774091.html
https://stanezhang.github.io/文章來源地址http://www.zghlxwxcb.cn/news/detail-774091.html
到了這里,關(guān)于@Value是個什么東西的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!