springboot讀取配置資訊、環境變數
2、讀取配置檔案
2.1 讀取核心配置檔案
核心配置檔案是指在resources根目錄下的application.properties或application.yml配置檔案,讀取這兩個配置檔案的方法有兩種,都比較簡單。
核心配置檔案application.properties內容如下: server.port=9090 test.msg=Hello World Springboot! |
2.1.1使用@Value方式(常用):
@RestController public class WebController { @Value("${test.msg}") private String msg; @RequestMapping(value = "index", method = RequestMethod.GET) public String index() { return "The Way 1 : " +msg; } } |
2.1.2使用Environment方式
@RestController public class WebController { @Autowired private Environment env; @RequestMapping(value = "index2", method = RequestMethod.GET) public String index2() { return "The Way 2 : " + env.getProperty("test.msg"); } } |
2.1.3 讓springboot轉換為java類
@Component @ConfigurationProperties(prefix="people") publicclass People { private String name; private Integer age; private List<String> address; private Phone phone; public String getName() { returnname; } |
public class Rest { @Autowired private People me; @RequestMapping("/bbb") public String hello() { return " good " + me.getName() + me.getAge() + me.getAddress() + me.getPhone().getNumber(); } } |
2.2 讀取自定義配置檔案
為了不破壞核心檔案的原生態,但又需要有自定義的配置資訊存在,一般情況下會選擇自定義配置檔案來放這些自定義資訊,這裡在resources/config目錄下建立配置檔案my-web.properties
@ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web") @Component public class MyWebConfig { private String name; private String version; private String author; public String getAuthor() { return author; } |
2.3 讀取環境變數
微服務開發時,一些配置資訊(比如資料庫使用者名稱,密碼)從配置檔案中讀取,但在paas中,需要從docker的環境變數中讀取。
server: port: 9090 people: # name: "hhh" # name: ${COMPUTERNAME} name: ${M2_HOME:abc} #首先取環境變數,如果環境變數中沒有,就取abc這個固定值 age: 38 address: - 111 - 222 phone: number: 13026613740 |