1. 程式人生 > >static靜態方法獲取yml配置

static靜態方法獲取yml配置

java普通類獲取yml檔案的配置很簡單,網上有很多類似的例子。比如:

@Value("${zzp2.name}")
private String name2;

@Value("${zzp2.girl.age}")
private Integer girlAge;

@Value("${zzp2.girl.name}")
private String girlName;

但是我們經常會寫util等類,裡面的方法都是靜態static的,這種情況下我們就沒法像普通方法一樣獲取到yml的配置了,此時我們應該怎麼獲取呢?

1.在yml裡面配置想要引數

user:
  name: lockie.zou

2.新建一個UserUtil來獲取配置的名字

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 類或方法的功能描述 : 使用者工具類
 *
 * @author: logan.zou
 * @date: 2018-08-16 11:20
 */
@Component
public class UserUtil {

    private static String userName;

    @Value("${user.name}")
    private String name;

    @PostConstruct
    public void getApiToken() {
        userName = this.name;
    }

    public static String getUserName() {
        // lockie.zou
        return userName;
    }
}

注意事項:

首選要在util裡建一個static的變數,然後使用@Value獲取yml配置檔案的值。最後關鍵就是使用 @PostConstruct 熟悉將yml中配置的值賦給本地的變數,這樣後面的靜態方法就能使用了。

注意util類使用了 @Component 屬性註解了說明是需要在啟動類 Application 啟動的時候載入的,所以我們本地寫一個方法呼叫 util 的時候是獲取不到 name的。