今天介紹三種配置文件手動取值的方式:
springboot配置文件信息保存在application.properties中,默認可以spring.開頭的進行spring進行一些常用參數的配置,但是很多時候我們需要手動配置一些配置,這就需要我們自己手動取值了,
application.propertis配置文件默認存在classpath/classpaht/config中。我們也可以通過配置在啟動服務器時通過啟動程序時通過手動配置參數置頂該路徑,這里就暫時不做演示,今天主要學習的是如何取得配置文件中的值。
方式1:
通過 SpringApplication.run(Application.class, args);返回的上下文信息ConfigurableApplicationContext取的
Environment,然后通過getProperty(key);取得value,直接上代碼:
配置文件key-value:
server.host=127.0.0.1
java代碼:
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args); context.getEnvironment().getProperty("server.host");
System.out.println("post" + context.getEnvironment().getProperty("server.host"));
輸出信息:
這里的Environment也可以通過
@Autowired
Environment env;
自動裝配。
方式2:
通過@Value("${key}")取值,
配置文件key-value:
server.post=8080
java代碼
package com.wangx.springboot.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; /** * 取值 * @author Administrator * */ @Component("users") public class User { @Value("${server.post}") private String post; public void print() { System.out.println(post); } }
Applilcation.java
User user = (User)context.getBean("users"); user.print();
控制台輸出:
方式3:
在配置文件中通過${key}引用配置信息
配置文件:
name=springboot server.name=this is a ${name}
User.java
package com.wangx.springboot.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; /** * 取值 * @author Administrator * */ @Component("users") public class User { @Autowired Environment env; @Value("${server.name}") private String post; public void print() { System.out.println(post); } }
控制台信息:
‘
OK,三次取值 演示完畢。