Java 声明 static @Value 变量

static 无法直接修饰 @Value 变量

需求

  • 复用个推 api 中的 PushApi。
  • 在 static 代码块中使用 static 修饰的变量。

static 修饰 @Value 变量

  1. 如果直接使用 static + @Value 声明变量,得到的是 null。
  2. 可以使用使用以下方法获取一个 static 的变量,值为@Value
// 声明为一个 spring bean
@Component
public class TestConfig {
    // 我们真正需要的 static 变量
    protected static String host;
  
    @Value("${host}")
    private String cHost;
    
    // 我的需求就是复用此变量
    protected static PushApi pushApi;

    @PostConstruct
    public void init() {
        // 这里我们就可以获取 static + @Value 的变量
        host = cHost;
        ```
        pushApi = apiHelper.creatApi(PushApi.class);
    }
}