成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Spring怎么讀取配置文件屬性

這篇文章主要講解了Spring怎么讀取配置文件屬性,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

按需設(shè)計網(wǎng)站可以根據(jù)自己的需求進(jìn)行定制,網(wǎng)站設(shè)計、網(wǎng)站制作構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司網(wǎng)站設(shè)計、網(wǎng)站制作的運(yùn)用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義

一 前言

本篇內(nèi)容包括spring 運(yùn)行時讀取配置文件的多種方式和SpEl表達(dá)式入門基礎(chǔ);

二運(yùn)行時讀取配置文件

spring 運(yùn)行時讀取配置文件值提供了2種方式

屬性占位符(Property placeholder)。

Spring表達(dá)式語言(SpEL)

2.1 讀取外部配置文件

使用 @PropertySource 注解可以讀取導(dǎo)classpath下配置文件屬性;參數(shù)如下

  • value是個字符串?dāng)?shù)組;
  • ignoreResourceNotFound;如果設(shè)置為true, 配置文件未找到時不會報錯;
  • encoding;指定字符集

首先resource 目錄下創(chuàng)建配置文件zszxz.properties ; 內(nèi)容如下

zszxz.name = zszxz
zszxz.point = share

其次讀取配置文件配置類如下

@Configuration
@PropertySource(value = {"classpath:zszxz.properties"},encoding = "UTF-8")
@Component
public class EnvironmentProperty {
  // 注入環(huán)境
  @Autowired
  private Environment environment;


  public void outputProperty(){
    System.out.println(environment.getProperty("zszxz.name"));
  }
}

最后通過測試類調(diào)用outputProperty()輸出配置文件中屬性的值

@RunWith(SpringJUnit4ClassRunner.class)//創(chuàng)建spring應(yīng)用上下文
@ContextConfiguration(classes= EnvironmentProperty.class)//加載配置類
public class PropertyTest {
  @Autowired
  EnvironmentProperty environmentProperty;

  @Test
  public void test(){
    // zszxz
    environmentProperty.outputProperty();
  }
}

Tip 也可以使用@PropertySources 注解,其value是 @PropertySource類型的數(shù)組;

其中 EnvironmentProperty 獲取主要屬性方法如下

  • String getProperty(String key); 通過key 取值
  • String getProperty(String key, String defaultValue); 獲取值,沒有則使用默認(rèn)值;
  • T getProperty(String key, Class var2); 獲取值,指定返回類型;
  • T getProperty(String key, Class var2, T defaultValue);獲取值,指定返回類型,指定默認(rèn)值;
  • String getRequiredProperty(String key) ; key必須為非空否則拋出IllegalStateException異常
     

2.2 使用占位符獲取配置文件

使用注解@Value獲取配置文件屬性值; 其中值使用占位符("${........}")方式;

配置類示例

@Configuration
@PropertySource(value = {"classpath:zszxz.properties"},encoding = "UTF-8")
@Component
public class EnvironmentProperty {

  @Value("${zszxz.point}")
  private String point;

  public void outputPoint(){
    System.out.println(point);
  }

}

測試示例

@RunWith(SpringJUnit4ClassRunner.class)//創(chuàng)建spring應(yīng)用上下文
@ContextConfiguration(classes= EnvironmentProperty.class)//加載配置類
public class PropertyTest {
  @Autowired
  EnvironmentProperty environmentProperty;
  @Test
  public void testPoint(){
    // share
    environmentProperty.outputPoint();
  }
}

2.3 SpEl表達(dá)式

Spring表達(dá)式語言(Spring Expression Language,SpEL)是一種靈活的表達(dá)式語言,能夠以簡潔的方式將值裝配到bean屬性或者構(gòu)造器參數(shù)中,此過程中能夠計算表達(dá)式獲取計算值;使用@Valjue注解時,SpEL表達(dá)式要放到“#{......}”之中;

獲取bean示例

  @Value("#{environmentProperty}")
  private EnvironmentProperty getBean;

  @Test
  public void testBean(){
    // com.zszxz.property.EnvironmentProperty$$EnhancerBySpringCGLIB$$8e54e11f@1d9b7cce
    System.out.println(getBean);
  }

獲取方法示例

  @Value("#{environmentProperty.getStr()}")
  private String getMethod;

  @Test
  public void testMethod(){
    // 知識追尋者
    System.out.println(getMethod);
  }

獲取屬性示例

注意點:username字段必須是public

  @Value("#{environmentProperty.username}")
  private String getField;

  @Test
  public void testField(){
    // 知識追尋者
    System.out.println(getField);
  }

獲取靜態(tài)方法示例

其中T()表示運(yùn)算會得到一個Class對象;

  @Value("#{T(java.lang.Math).random()}")
  private double number;

  @Test
  public void testStatic() {
    // 0.9205474938572363
    System.out.println(number);
  }

非空判定示例

其中? 表示非空判定

  @Value("#{environmentProperty.username?.toString()}")
  private String notNull;

  @Test
  public void testNotNUll() {
    // 知識追尋者
    System.out.println(notNull);
  }

支持運(yùn)算符如下

  • 算術(shù)運(yùn)算 + 、 - 、 * 、 / 、 % 、 ^
  • 比較運(yùn)算 < 、 > 、 == 、 <= 、 >= 、 lt 、 gt 、 eq 、 le 、 ge
  • 邏輯運(yùn)算 and 、 or 、 not 、 │
  • 正則表達(dá)式 matche

看完上述內(nèi)容,是不是對Spring怎么讀取配置文件屬性有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱:Spring怎么讀取配置文件屬性
文章轉(zhuǎn)載:http://jinyejixie.com/article46/pshgeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站搜索引擎優(yōu)化、軟件開發(fā)網(wǎng)站營銷、網(wǎng)站制作、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
桂林市| 双鸭山市| 河北省| 宣化县| 金昌市| 陇南市| 宁陕县| 宁陕县| 恩平市| 天台县| 龙江县| 大化| 绵竹市| 桦南县| 涞源县| 开平市| 阜城县| 徐闻县| 紫云| 弋阳县| 敦煌市| 辽宁省| 奉新县| 苍溪县| 马关县| 广宗县| 肥乡县| 呼玛县| 乌拉特前旗| 观塘区| 徐州市| 开化县| 化德县| 久治县| 宜宾市| 永丰县| 林西县| 临沧市| 政和县| 海伦市| 琼海市|