spring boot--@Value注解失效


接手一個任務開發預警郵件需求,計划將郵件信息(hostName,用戶名,密碼,發送方,接受方等)設置為可配置變量,配置在配置中心,使用@Value注解獲取配置,如下:

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

@Value("#{'${warning.email.receivers}'.split(',')}")
private  List<String> receivers;

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

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

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

以上為正確配置方式,發生錯誤的情況是將這些變量全部聲明為了靜態變量,導致取值全部為空:

@Value("${warning.email.hostName}")
private  static String hostName;

上網查詢了下使用@Value的注意事項:

1.不能作用於靜態變量(static);

2.不能作用於常量(final);

3.不能在非注冊的類中使用(類需要被注冊在spring上下文中,如用@Service,@RestController,@Component等);

4.使用這個類時,只能通過依賴注入的方式,用new的方式是不會自動注入這些配置的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM