使用@Value 注解將配置文件中的值注入到靜態變量中


當使用@Value注解獲取配置文件中的值注入到非靜態變量中時,只需要將@Value("${}")放到響應的變量上方即可。當非靜態變量變為靜態變量時,處理方式有所不同。

配置文件

e:
  uri: https://123456.com
  appId: 123456

注入到非靜態變量

 @Value("${e.uri}")
 private String uri;
 @Value("${e.appId}")
 private String appId;

注入到靜態變量

@Component   //此注解不能少,否則需要收動實例化。類似@Component注解的都可以
public class EContractUtil {

    //聲明靜態變量
    private static  String uri;  

    private static String appId;

    //set方式注入值
    @Value("${e.uri}")    //此時注解一定放在此處,放到變量上方獲取到的將是null
    public void setUri(String uri) {
        this.uri = uri;
    }

    @Value("${e.appId}")
    public void setAppId(String appId) {
        this.appId = appId;
    }

    public static void accessToken() {
        //在靜態方法中只能使用靜態變量,不能使用非靜態變量,並且靜態變量的值從配置文件中獲取,就需要使用上述方法。
   }
}     

至於為什么不直接在靜態方法中使用非靜態變量,這樣就不用name麻煩的從配置文件中獲取屬性值。原因如下:

靜態只能訪問靜態;

非靜態既可以訪問非靜態的,也可以訪問靜態的。


免責聲明!

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



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