在spring中,配置檔案分為匯入和裝配兩個步驟,而裝配則分為通過spring的environment、解析屬性佔位符、spring表示式語言spel三種方式。
一、spring匯入配置檔案:
配置檔案中匯入非常簡單,只需要
1、匯入properties檔案:
在src/main/resources下面新建乙個file,命名為test.properties
2、在config檔案中,寫入解析配置檔案的註解:
@propertysource("classpath:test.properties")
3、如果是多個配置檔案的話,那麼最好在.xml中加入掃瞄配置檔案的註解:
那麼spring就會把classpath下面所有的.properties配置都匯入到容器中。
二、通過spring的environment來裝配屬性:
spring會自動解析配置檔案,並將配置檔案中得到的資料注入到spring的environment物件中,需要獲取配置檔案資訊的類只需要注入spring的environment物件即可。
使用@autowired即可自動注入乙個environment物件,此物件即有配置檔案中的所有配置,即可以通過此物件來獲取配置檔案中的所有資訊。
environment的使用:
1、獲取配置資訊的四種方法:
1.1、string getproperty(string key)
1.2、string getproperty(string key,string defaultvalue)
1.3、t getproperty(string key, classtype)
1.4、t getproperty(string key, classtype,t defaultvalue)
比如想獲取配置檔案中key為name的屬性,可以這樣:
env.getproperty("name")
env.getproperty("connection.username")
3與4即是獲取非string型別的屬性,比如獲取integer屬性的引數:
int count = env.getproperty("connection.count", integer.class, 30);
2、判斷是否存在某配置:
boolean exists = env.containsproperty("disc.title");
舉例:需要解決的問題:
現在我需要將乙個people的name和age都放在配置檔案中,在程式執行時,動態的將name和age放置到people物件中:
解決方法:
1、新建乙個test.properties,寫入配置:
age=18
2、在config檔案中寫入註解:
@configuration
@propertysource("classpath:test.properties")
public class mainconfig
}3、其中people的實體類為:
public class people
public void setname(string name)
public string getage()
public void setage(string age)
}4、建立乙個test類進行測試:
@runwith(springjunit4classrunner.class)
@contextconfiguration(classes = mainconfig.class)
public class maintest
}5、輸出的結果為:
三、使用解析屬性佔位符進行裝配:
此為最簡單的方法,當匯入配置檔案之後,我們可以直接通過
@value("$")
來直接獲取到配置檔案中key對應的值:
比如,配置檔案中有乙個配置:
key=value
那麼獲取的方式為
@value("$")
舉例:繼續按照上述工程,現在需要直接通過配置檔案中的資料去生成乙個valuepeople物件,寫法為:
@component
public class valuepeople ")
private string name;
@value("$")
private string age;
public string getname()
public void setname(string name)
public string getage()
public void setage(string age)
}則spring在生成valuepeople物件時會自動將name和age注入進去。
spring配置檔案
1 配置檔案的簡化 1 屬性的 property name foo value foovalue value property 簡化為 property name foo value foovalue 2 引用bean property name foo ref bean foobean prope...
spring配置檔案
context annotation config 是用於啟用那些已經在spring容器裡註冊過的bean上面的註解,也就是顯示的向spring註冊 autowiredannotationbeanpostprocessor commonannotationbeanpostprocessor pers...
Spring Boot匯入配置檔案與取值
springboot簡化了大量配置檔案,但是必要時還是需要匯入配置檔案的,比如dubbo,此處簡記之。所有的配置檔案引入都是使用註解在類上進行引入的,常用的有兩種註解 propertysource和 importsource,分別匯入properties檔案和xml檔案 propertysource...