首頁>技術>

今天和大家分享一下Spring讀取配置檔案的三種方式,第一種就是Environment,第二種就是佔位符,第三種就是SpEL(Spring Express Language)。無論哪一種方式都要先設定資料來源再進行讀取。在工作當中用的最多的應該是佔位符,不過其他兩種也有自己的特點。下面一起來看一下吧。

我們進行的講解是以Spring的5.0.2.RELEASE版本基礎的哦。

第一種:Environment讀取配置檔案

經過本人實驗這種方式只能針對java配置的方式有效,xml指定資料來源後Environment無法讀取配置項。指定完資料來源後向需要配置項的bean注入Environment物件,再通過Environment物件的方法進行讀取。

首先,指定資料來源。使用PropertySource註解指定資料來源:

@Configuration@ComponentScan@PropertySource("classpath:app.properties")public class EnvironmentStyleConfig {...}

其次,注入Environment物件。向所需配置項的bean中注入Environment物件:

@AutowiredEnvironment env;

最後,讀取配置。通過env物件的方法來讀取配置項,其方法如下:

1.env.getProperty("name");獲取String型別

2.env.getRequiredProperty("name");獲取String型別而且不能為空,為空則報錯

3.env.getProperty("fistname", "無名");獲取String型別,如果為空則附一個預設值

4.env.getProperty("age", Integer.class);獲取指定型別的值

5.env.getProperty("myage", Integer.class, 0);獲取指定型別的值,如果為空則設定一個預設值

第二種:使用佔位符

首先,指定資料來源。分為兩種,一種是java配置來指定,一種是xml來指定,分別如下:

Java配置指定資料來源:

@Configuration@ComponentScan@PropertySource("classpath:app.properties")public class PlaceholderStyleConfig {...}

請注意哦小夥伴,這裡Spring的版本是5.0.2.RELEASE,如果是4.0.7.RELEASE的話還需要配置PropertySourcesPlaceholderConfigurer,在自己的專案裡要確認這一點哦。

@Configuration@ComponentScan@PropertySource("classpath:app.properties")public class PlaceholderStyleConfig { @Bean public PropertySourcesPlaceholderConfigurer placeholder() { return new PropertySourcesPlaceholderConfigurer(); }}

Xml配置指定資料來源:

<context:property-placeholder location="app.properties"/>

其次,通過Value註解和$來讀取值。這裡分java注入和xml配置兩種,如下:

java注入時取值:

@Value("${name}")private String name;

Xml配置時取值:

<bean> <property name="name" value="${name}"></property></bean>
第三種:使用SpEL

首先指定資料來源

@Configuration@ComponentScan@PropertySource("classpath:app.properties")public class SpELStyleConfig {...}

然後通過Value註解和#符從environment物件中讀取

@Value("#{environment['height']}")public String height;

和大家說一下,SpEL功能有很多,這裡只是介紹他如何讀取配置檔案的配置項。如果有興趣了解SpEL的話,小夥伴們可以查閱一下其他文件。

237

Java

XML

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • .Net Core 3.0 IdentityServer4 快速入門