容器启动时从yml或者properties里取值,然后给jar包里的某一个静态类赋值
先上代码,我再解释
#properties配置
web.host=127.0.0.1:8080
web.appKey=123456
web.appSecret=qwertyu
web.path=/path
public class MyApplicationRunner implements ApplicationRunner {
@Value("${artemis.host}")
private String host;
@Value("${artemis.appKey}")
private String appKey;
@Value("${artemis.appSecret}")
private String appSecret;
@Value("${artemis.path}")
private String artemisPath;
@Override
public void run(ApplicationArguments args) {
System.out.println("-----------MyApplicationRunner:run host: "+host);
AConfig.host = host;
AConfig.appSecret = appSecret;
AConfig.appKey = appKey;
}
}
ApplicationRunner这个类是在应用启动时,即 Spring 容器加载完后,执行我们定义的 run 方法,执行完成后项目启动完成。
而@Value 是在容器加载的时候去读取property文件里对应的内容。