在静态方法下使用Spring Boot配置文件的内容

Scroll Down

在spring开发过程中,往往会引用配置文件的内容,这时,我们一般使用@Value 注解或者ConfigurableApplicationContext 进行注入。这些适用于非静态方法,这里讲解一下静态方法引用配置文件的内容:

配置文件demo.yaml:

sms:
  apiKey: 123456

这里使用工具类进行调用:

public class SmsUtils {

    private static ConfigurableApplicationContext applicationContext;

    @Autowired
    public void setApplicationContext(ConfigurableApplicationContext applicationContext) {
        SmsUtils.applicationContext = applicationContext;
    }
    public void test(){
       String apiKey = applicationContext.getEnvironment().getProperty("sms.apiKey");
    }
}

方法类中,自己定义一个静态的ConfigurableApplicationContext 变量, 通过@Autowired 注入重新赋值。

使用@Value注解也是一样的:

public class SmsUtils {

    private static String smsApiKey;

    @Autowired
    public void setSmsApiKey(String apiKey) {
        SmsUtils.smsApiKey= apiKey;
    }
    public void test(){
      sout(smsApiKey); //打印
    }
}