容器启动时从yml或者properties里取值,然后给jar包里的某一个静态类赋值

容器启动时从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文件里对应的内容。

你可能感兴趣的:(Springboot复习,jar,spring,java)