最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring讀取配置文件屬性實(shí)現(xiàn)方法

 更新時(shí)間:2020年04月22日 09:40:43   作者:知識追尋者  
這篇文章主要介紹了Spring讀取配置文件屬性實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一 前言

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

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

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

屬性占位符(Property placeholder)。

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

2.1 讀取外部配置文件

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

  • value是個(gè)字符串?dāng)?shù)組;
  • ignoreResourceNotFound;如果設(shè)置為true, 配置文件未找到時(shí)不會(huì)報(bào)錯(cuò);
  • 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ù)中,此過程中能夠計(jì)算表達(dá)式獲取計(jì)算值;使用@Valjue注解時(shí),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);
  }

獲取屬性示例

注意點(diǎn):username字段必須是public

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

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

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

其中T()表示運(yùn)算會(huì)得到一個(gè)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 、 │
  • 條件運(yùn)算 ?: (ternary) 、 ?: (Elvis)
  • 正則表達(dá)式 matches

更多內(nèi)容讀者自行參考官網(wǎng)學(xué)習(xí)

https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java讀寫excel文件實(shí)現(xiàn)POI解析Excel的方法

    java讀寫excel文件實(shí)現(xiàn)POI解析Excel的方法

    在日常工作中,我們常常會(huì)進(jìn)行Excel文件讀寫操作,這篇文章主要介紹了java讀寫excel文件實(shí)現(xiàn)POI解析Excel的方法,實(shí)例分析了java讀寫excel的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • 圖解紅黑樹及Java進(jìn)行紅黑二叉樹遍歷的方法

    圖解紅黑樹及Java進(jìn)行紅黑二叉樹遍歷的方法

    紅黑樹問題是各大計(jì)算機(jī)考研命題以及面試算法題目中的熱門,接下來我們?yōu)榇蠹覉D解紅黑樹及Java進(jìn)行紅黑二叉樹遍歷的方法,需要的朋友可以參考下
    2016-05-05
  • Java Redis Redisson配置教程詳解

    Java Redis Redisson配置教程詳解

    這篇文章主要介紹了Java Redis Redisson配置教程,包括Session共享配置及其他Redisson的Config配置方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 23種設(shè)計(jì)模式(1) java單例模式

    23種設(shè)計(jì)模式(1) java單例模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java實(shí)現(xiàn)拖拽文件上傳dropzone.js的簡單使用示例代碼

    Java實(shí)現(xiàn)拖拽文件上傳dropzone.js的簡單使用示例代碼

    本篇文章主要介紹了Java實(shí)現(xiàn)拖拽文件上傳dropzone.js的簡單使用示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • 詳解Spring Cloud Netflix Zuul中的速率限制

    詳解Spring Cloud Netflix Zuul中的速率限制

    這篇文章主要介紹了詳解Spring Cloud Netflix Zuul中的速率限制,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證

    SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證

    在springboot的登陸頁面中為了防止機(jī)器大規(guī)模注冊,機(jī)器暴力破解數(shù)據(jù)密碼等危害,需要驗(yàn)證隨機(jī)生成的驗(yàn)證碼,本文主要介紹了SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證,感興趣的可以了解一下
    2023-12-12
  • Java中的流式編程問題

    Java中的流式編程問題

    這篇文章主要介紹了Java中的流式編程問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java中WeakHashMap的使用詳解

    Java中WeakHashMap的使用詳解

    這篇文章主要介紹了Java中WeakHashMap的使用詳解,WeakHashMap是一種弱引用的Map,底層數(shù)據(jù)結(jié)構(gòu)為數(shù)組鏈表,與HashMap相比,WeakHashMap的區(qū)別在于它的key存儲(chǔ)為弱引用,在垃圾回收時(shí),如果key沒有被強(qiáng)引用所引用,那么key會(huì)被回收掉,需要的朋友可以參考下
    2023-09-09
  • java?-jar指定外部配置文件操作步驟

    java?-jar指定外部配置文件操作步驟

    這篇文章主要給大家介紹了關(guān)于java?-jar指定外部配置文件的相關(guān)資料,需要的朋友可以參考下
    2023-11-11

最新評論

呼伦贝尔市| 子长县| 喜德县| 洞头县| 汤阴县| 饶平县| 江油市| 盐津县| 敦煌市| 乌拉特后旗| 进贤县| 鱼台县| 合肥市| 杨浦区| 余姚市| 岚皋县| 梓潼县| 宿松县| 灯塔市| 富宁县| 丹阳市| 黎城县| 大渡口区| 元江| 兴义市| 通化县| 清远市| 彩票| 岑巩县| 建瓯市| 仁怀市| 桦南县| 兴安县| 隆德县| 新乡市| 雷山县| 历史| 松溪县| 株洲县| 东方市| 桑日县|