SpringBoot19 之環境變量讀取和屬性對象的綁定

凡是被Spring管理的類,實現接口 EnvironmentAware 重寫方法 setEnvironment 能夠在工程啓動時,spring

獲取到系 統環境變量和application配置文件中的變量。app

@Configurationide

public class MyEnvironmentAware implements EnvironmentAware {url

//注入application.properties的屬性到指定變量中..net

@Value("${spring.datasource.url}")接口

private String myUrl;get

@Overrideio

public void setEnvironment(Environment environment) {class

//打印注入的屬性信息.變量

System.out.println("myUrl=" + myUrl);

//經過 environment 獲取到系統屬性.

System.out.println(environment.getProperty("JAVA_HOME"));

//經過 environment 一樣能獲取到application.properties配置的屬性.

System.out.println(environment.getProperty("spring.datasource.url"));

//獲取到前綴是"spring.datasource." 的屬性列表值.

RelaxedPropertyResolver relaxedPropertyResolver = new RelaxedPropertyResolver(environment, "spring.datasource.");

System.out.println("spring.datasource.url=" + relaxedPropertyResolver.getProperty("url"));

System.out.println("spring.datasource.driverClassName=" + relaxedPropertyResolver.getProperty("driverClassName"));

}

}

@Controller @Service 等被Spring管理的類都支持,注意重寫的方法 setEnvironment 是在系統啓動的時候被執行。 或者以下Controller:

@Controller

public class PageController implements EnvironmentAware {

@Override

public void setEnvironment(Environment environment) {

String s = environment.getProperty("JAVA_HOME");

System.out.println(s);

}

}

相關文章
相關標籤/搜索