亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決使用@Value(${×××))從properties文件取值的坑

 更新時(shí)間:2021年07月07日 09:11:03   作者:觀棋不語的我  
這篇文章主要介紹了解決使用@Value(${×××))從properties文件取值的坑,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Value(${×××))從properties文件取值

前提:

你的實(shí)體類已經(jīng)加入到了IOC容器中(使用@Compenet等注解)

報(bào)錯(cuò)代碼:

@Value("${driver}")
private String driver;
@Value("${url}")
private String url;
@Value("${username}")
private String userName;
@Value("${password}")
private String password;

properties文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=admin

此時(shí)你這樣寫 @Value 注解是無法獲取 properties文件中的值的

必須要在properties文件屬性前加上前綴(任意)即可

如:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.username=root
jdbc.password=admin

對應(yīng)的類也要修改

@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;

這樣就可以正常獲取了

補(bǔ)充:

1、靜態(tài)變量無法注入

2、Springboot默認(rèn)屬性文件是application.properties

Spring @Value("${}")空值處理

場景:

Test類中有一個(gè)在application.properties配置的屬性email

@Value("${email}")
private String email;

如果email在配置中沒有配置,應(yīng)用啟動(dòng)時(shí)將報(bào)找不到該屬性異常,導(dǎo)致啟動(dòng)失敗。

解決方案1:

在Test類上同時(shí)加上@Component,@Lazy

解決方案2:

在springboot中提供了@ConditionalOnProperty注解

設(shè)置注入條件

@ConditionalOnProperty(name = "flag", havingValue = "true")

僅當(dāng)配置文件application.properties中flag屬性為true時(shí)才會實(shí)例化bean

相關(guān)文章

最新評論