spring boot 專案啟動過程中:
當程式步入listeners.environmentprepared(environment);這裡後,就會讀取配置檔案中資訊。
這句**不好除錯listeners.environmentprepared(environment);
在斷點處打上斷點,就可以看到系統是如何執行的:下面是堆疊資訊
這個類裡面的包含一些配置資訊:
private乙個properties. 乙個yaml配置sourceloaderstatic
final string default_properties = "defaultproperties";
//note the order is from least to most specific (last one wins)
private static final string default_search_locations = "classpath:/,classpath:/config/,file:./,file:./config/";
private
static
final setno_search_names = collections.singleton(null
);
private
static
final bindablestring_array = bindable.of(string.class
);
/*** the "active profiles" property name.
*/public
static
final string active_profiles_property = "spring.profiles.active";
/*** the "includes profiles" property name.
*/public
static
final string include_profiles_property = "spring.profiles.include";
/*** the "config name" property name.
*/public static final string config_name_property = "spring.config.name";
/*** the "config location" property name.
*/public static final string config_location_property = "spring.config.location";
載入yaml檔案的類是yamlpropertysourceloader
public注如果是雲環境,則首先載入的是bootstrap.yml, environment也是standardenvironment,非servlet環境。這是和spring boot有很大的不同,載入完成後,再巢狀一standardservletenvironment.class yamlpropertysourceloader implements
propertysourceloader ;
}@override
public list> load(string name, resource resource) throws
ioexception
list
> loaded = new origintrackedyamlloader(resource).load();
if(loaded.isempty())
list
> propertysources = new arraylist<>(loaded.size());
for (int i = 0; i < loaded.size(); i++)
return
propertysources;}}
載入完成後,再巢狀一standardservletenvironment.
SpringBoot獲取properties配置
前言 在專案中,很多時候需要把配置寫在properties裡,部署的時候也需要切換不同的環境來選擇正確的配置的引數,也有時候需要將mq redis等第三方配置新建乙個properties檔案在專案中引用。1.因為是spring的環境,當然首先需要搭建好spring環境。package com.exa...
SpringBoot獲取properties配置
擼了今年阿里 網易和美團的面試,我有乙個重要發現.前言 在專案中,很多時候需要把配置寫在properties裡,部署的時候也需要切換不同的環境來選擇正確的配置的引數,也有時候需要將mq redis等第三方配置新建乙個properties檔案在專案中引用。1.因為是spring的環境,當然首先需要搭建...
SpringBoot獲取資料
配置檔案中資料 name abc 物件persion name lele age 29 物件行內寫法 persion2 陣列address beijing shanghai 陣列行內寫法 address2 beijing,shanghai msg1 hello n world 不會識別轉譯字元,原樣...