精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot 2.0 新特性(一):配置綁定 2.0 全解析

企業動態
在Spring Boot 2.0中推出了Relaxed Binding 2.0,對原有的屬性綁定功能做了非常多的改進以幫助我們更容易的在Spring應用中加載和讀取配置信息。下面本文就來說說Spring Boot 2.0中對配置的改進。

在Spring Boot 2.0中推出了Relaxed Binding 2.0,對原有的屬性綁定功能做了非常多的改進以幫助我們更容易的在Spring應用中加載和讀取配置信息。下面本文就來說說Spring Boot 2.0中對配置的改進。

配置文件綁定

簡單類型

在Spring Boot 2.0中對配置屬性加載的時候會除了像1.x版本時候那樣移除特殊字符外,還會將配置均以全小寫的方式進行匹配和加載。所以,下面的4種配置方式都是等價的:

properties格式:

  1. spring.jpa.databaseplatform=mysql 
  2. spring.jpa.database-platform=mysql 
  3. spring.jpa.databasePlatform=mysql 
  4. spring.JPA.database_platform=mysql 

yaml格式:

  1. spring: 
  2.   jpa: 
  3.     databaseplatform: mysql 
  4.     database-platform: mysql 
  5.     databasePlatform: mysql 
  6.     database_platform: mysql 

Tips:推薦使用全小寫配合-分隔符的方式來配置,比如:spring.jpa.database-platform=mysql

List類型

在properties文件中使用[]來定位列表類型,比如:

  1. spring.my-example.url[0]=http://example.com 
  2. spring.my-example.url[1]=http://spring.io 

也支持使用逗號分割的配置方式,上面與下面的配置是等價的:

  1. spring.my-example.url=http://example.com,http://spring.io 

而在yaml文件中使用可以使用如下配置:

  1. spring: 
  2.   my-example: 
  3.     url: 
  4.       - http://example.com 
  5.       - http://spring.io 

也支持逗號分割的方式:

  1. spring: 
  2.   my-example: 
  3.     url: http://example.com, http://spring.io 

注意:在Spring Boot 2.0中對于List類型的配置必須是連續的,不然會拋出UnboundConfigurationPropertiesException異常,所以如下配置是不允許的:

  1. foo[0]=a 
  2. foo[2]=b 

在Spring Boot 1.x中上述配置是可以的,foo[1]由于沒有配置,它的值會是null

Map類型

Map類型在properties和yaml中的標準配置方式如下:

  • properties格式:
  1. spring.my-example.foo=bar 
  2. spring.my-example.hello=world 
  • yaml格式:
  1. spring: 
  2.   my-example: 
  3.     foo: bar 
  4.     hello: world 

注意:如果Map類型的key包含非字母數字和-的字符,需要用[]括起來,比如:

  1. spring: 
  2.   my-example: 
  3.     '[foo.baz]': bar 

環境屬性綁定

簡單類型

在環境變量中通過小寫轉換與.替換_來映射配置文件中的內容,比如:環境變量SPRING_JPA_DATABASEPLATFORM=mysql的配置會產生與在配置文件中設置spring.jpa.databaseplatform=mysql一樣的效果。

List類型

由于環境變量中無法使用[和]符號,所以使用_來替代。任何由下劃線包圍的數字都會被認為是[]的數組形式。比如:

  1. MY_FOO_1_ = my.foo[1] 
  2. MY_FOO_1_BAR = my.foo[1].bar 
  3. MY_FOO_1_2_ = my.foo[1][2] 

另外,***環境變量***是以數字和下劃線結尾的話,***的下劃線可以省略,比如上面例子中的***條和第三條等價于下面的配置:

  1. MY_FOO_1 = my.foo[1] 
  2. MY_FOO_1_2 = my.foo[1][2] 

系統屬性綁定

簡單類型

系統屬性與文件配置中的類似,都以移除特殊字符并轉化小寫后實現綁定,比如下面的命令行參數都會實現配置spring.jpa.databaseplatform=mysql的效果:

  1. -Dspring.jpa.database-platform=mysql 
  2. -Dspring.jpa.databasePlatform=mysql 
  3. -Dspring.JPA.database_platform=mysql 

List類型

系統屬性的綁定也與文件屬性的綁定類似,通過[]來標示,比如:

  1. -D"spring.my-example.url[0]=http://example.com" 
  2. -D"spring.my-example.url[1]=http://spring.io" 

同樣的,他也支持逗號分割的方式,比如:

  1. -Dspring.my-example.url=http://example.com,http://spring.io 

屬性的讀取

上文介紹了Spring Boot 2.0中對屬性綁定的內容,可以看到對于一個屬性我們可以有多種不同的表達,但是如果我們要在Spring應用程序的environment中讀取屬性的時候,每個屬性的唯一名稱符合如下規則:

  • 通過.分離各個元素
  • ***一個.將前綴與屬性名稱分開
  • 必須是字母(a-z)和數字(0-9)
  • 必須是小寫字母
  • 用連字符-來分隔單詞
  • 唯一允許的其他字符是[和],用于List的索引
  • 不能以數字開頭

所以,如果我們要讀取配置文件中spring.jpa.database-platform的配置,可以這樣寫:

  1. this.environment.containsProperty("spring.jpa.database-platform"

而下面的方式是無法獲取到spring.jpa.database-platform配置內容的:

  1. this.environment.containsProperty("spring.jpa.databasePlatform"

注意:使用@Value獲取配置內容的時候也需要這樣的特點

全新的綁定API

在Spring Boot 2.0中增加了新的綁定API來幫助我們更容易的獲取配置信息。下面舉個例子來幫助大家更容易的理解:

例子一:簡單類型

假設在propertes配置中有這樣一個配置:com.didispace.foo=bar

我們為它創建對應的配置類:

  1. @Data 
  2. @ConfigurationProperties(prefix = "com.didispace"
  3. public class FooProperties { 
  4.  
  5.     private String foo; 
  6.  

接下來,通過***的Binder就可以這樣來拿配置信息了:

  1. @SpringBootApplication 
  2. public class Application { 
  3.  
  4.     public static void main(String[] args) { 
  5.         ApplicationContext context = SpringApplication.run(Application.class, args); 
  6.  
  7.         Binder binder = Binder.get(context.getEnvironment()); 
  8.  
  9.         // 綁定簡單配置 
  10.         FooProperties foo = binder.bind("com.didispace", Bindable.of(FooProperties.class)).get(); 
  11.         System.out.println(foo.getFoo()); 
  12.     } 

例子二:List類型

如果配置內容是List類型呢?比如:

  1. com.didispace.post[0]=Why Spring Boot 
  2. com.didispace.post[1]=Why Spring Cloud 
  3.  
  4. com.didispace.posts[0].title=Why Spring Boot 
  5. com.didispace.posts[0].content=It is perfect! 
  6. com.didispace.posts[1].title=Why Spring Cloud 
  7. com.didispace.posts[1].content=It is perfect too! 

要獲取這些配置依然很簡單,可以這樣實現:

  1. ApplicationContext context = SpringApplication.run(Application.class, args); 
  2.  
  3. Binder binder = Binder.get(context.getEnvironment()); 
  4.  
  5. // 綁定List配置 
  6. List<String> post = binder.bind("com.didispace.post", Bindable.listOf(String.class)).get(); 
  7. System.out.println(post); 
  8.  
  9. List<PostInfo> posts = binder.bind("com.didispace.posts", Bindable.listOf(PostInfo.class)).get(); 
  10. System.out.println(posts); 

代碼示例

本文的相關例子可以查看下面倉庫中的Chapter2-2-1目錄:

Github:https://github.com/dyc87112/SpringBoot-Learning

Gitee:https://gitee.com/didispace/SpringBoot-Learning

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2018-06-06 14:30:38

Spring BootApplication事件

2009-06-15 16:15:37

Spring2.0新特

2009-06-18 15:40:07

Spring Batc

2025-04-16 10:03:40

開發Spring應用程序

2013-02-25 14:02:07

RubyWeb

2012-03-14 12:29:55

JavaPlay Framwo

2025-04-29 07:44:26

配置校驗機制

2009-07-30 14:55:43

ASP.NET 2.0

2010-02-03 17:52:11

Python 2.0

2011-09-30 14:15:10

Sencha ToucSencha Touc

2012-07-02 10:43:49

JVMGroovyJava

2013-02-26 09:36:57

RubyRuby 2.0

2009-11-04 14:17:34

ADO.NET 2.0

2018-06-20 15:33:44

Spring BootJava 9JDK

2021-07-26 11:09:43

NacosSpring Boot配置

2015-06-23 15:48:41

Swift 2.0iOS9

2009-07-03 17:40:35

JSP2.0

2021-07-08 18:10:03

2009-08-18 09:17:01

JavaScript2

2009-06-19 13:28:30

Spring AOPSpring 2.0
點贊
收藏

51CTO技術棧公眾號

av网在线观看| 日本五十熟hd丰满| 99久久er| 国产精品国产自产拍在线| 国产主播精品在线| 午夜激情福利网| 国产一区在线电影| 一本到一区二区三区| 亚洲精品一区二区三区樱花| 国产一级片免费视频| 99久久99久久精品国产片果冰| 91精品国产美女浴室洗澡无遮挡| 韩日视频在线观看| 国产h视频在线观看| 国产精品888| 欧美亚洲视频在线观看| 少妇视频一区二区| 日韩av网址大全| 欧美日韩国产小视频在线观看| 免费的一级黄色片| 国产私拍精品| 成人妖精视频yjsp地址| 国产精品99久久久久久白浆小说| 青青草偷拍视频| 欧美偷拍综合| 亚洲国产免费av| 国产在线观看中文字幕| 亚洲最新无码中文字幕久久| 亚洲精品美国一| 性刺激综合网| 婷婷五月综合久久中文字幕| 国产最新精品免费| 国产97色在线| 国产特黄大片aaaa毛片| 欧美日本三区| 中文字幕亚洲综合| 大又大又粗又硬又爽少妇毛片| 试看120秒一区二区三区| 欧美性欧美巨大黑白大战| 免费在线观看视频a| 成人影院www在线观看| 国产婷婷色一区二区三区四区| 国产精品一区二区三区在线观| 中文字幕在线播出| 久久亚洲影院| 欧美亚洲日本黄色| 国产成人免费观看视频 | 日韩不卡av| 色一情一乱一乱一区91av| 国产精品综合在线视频| 国产色综合天天综合网| 中文字幕在线观看你懂的| 日韩专区欧美专区| 国产97在线|亚洲| 日韩黄色在线播放| 国产日韩综合| 69久久夜色精品国产7777| xxxxxx国产| 亚洲激情黄色| 97在线视频国产| 亚洲国产成人精品激情在线| 亚洲精华国产欧美| 国模私拍视频一区| 国产第100页| 在线视频观看日韩| 国语自产精品视频在线看抢先版图片 | 久久综合九色综合久久久精品综合 | 91黄色在线看| 美足av综合网| 亚洲成av人影院| 大陆极品少妇内射aaaaa| 欧美日韩国产观看视频| 欧美香蕉大胸在线视频观看| 国产精品人人妻人人爽人人牛| videos性欧美另类高清| 色婷婷精品久久二区二区蜜臂av | 精品3atv在线视频| 在线亚洲+欧美+日本专区| 亚洲国产高清av| 国产精品99久久免费| 欧美v国产在线一区二区三区| 色偷偷中文字幕| 超碰精品在线| 亚洲欧美激情一区| 影音先锋男人资源在线观看| 狠狠久久婷婷| 欧洲成人性视频| 中文文字幕一区二区三三| 黄页视频在线91| 国产伦一区二区三区色一情| 日韩a在线看| 中日韩av电影| 国内少妇毛片视频| 欧洲一区二区三区精品| 91精品国产综合久久久久久久久久 | 国产美女激情视频| 久久精品国产成人一区二区三区| 亚洲一区国产精品| 亚洲 欧美 激情 另类| 亚洲国产精品成人综合| 国产成人永久免费视频| 激情都市亚洲| 欧美一级专区免费大片| 搡老熟女老女人一区二区| 日韩在线高清| 8050国产精品久久久久久| 成人黄色三级视频| 国产精品99久久久久| 日产精品一线二线三线芒果| 尤物在线网址| 欧美午夜一区二区三区免费大片| 在线观看一区二区三区视频| 精品成人影院| 高清在线视频日韩欧美| 中文天堂在线视频| 91在线视频免费91| 天堂а√在线中文在线| 日韩精品免费观看视频| 亚洲第一天堂无码专区| 99自拍偷拍视频| 美女黄色成人网| 国产精品一区二区三区免费观看| 激情在线小视频| 91国偷自产一区二区开放时间 | 国产精品嫩草影院8vv8| 蜜桃tv一区二区三区| 欧美激情亚洲自拍| 国产精品自拍电影| 中文文精品字幕一区二区| 大肉大捧一进一出好爽视频| 一区二区三区国产好| www欧美日韩| 成人黄色激情视频| 久久综合久久鬼色| 久艹视频在线免费观看| 亚洲日本va中文字幕| 精品国产美女在线| 中国黄色一级视频| 久久久国产一区二区三区四区小说 | 亚洲综合久久av一区二区三区| 久久国产66| 精品国产综合久久| 国产第一页在线视频| 日韩欧美久久久| 成人免费视频网站入口::| 久久国产欧美日韩精品| 日韩和欧美的一区二区| 欧美亚洲大片| 亚洲热线99精品视频| 草久久免费视频| av欧美精品.com| 青春草国产视频| 中文无码日韩欧| 欧美成人免费小视频| 999国产精品视频免费| 日韩美女久久久| 亚洲性图一区二区| 欧美aaaa视频| 亚洲精品欧美极品| 在线视频中文字幕第一页| 欧美一级理论片| 欧美日韩精品一区二区三区视频播放| 激情欧美日韩一区二区| 欧美aaa在线观看| 精品国产乱码久久久久久樱花| 久久激情五月丁香伊人| 国产ts变态重口人妖hd| 一区二区在线观看不卡| 女同性恋一区二区三区| 国产欧美日韩一级| 日韩和欧美的一区二区| 日韩五码电影| 欧美交受高潮1| 天天综合网在线观看| 91官网在线免费观看| 美女三级黄色片| 国产宾馆实践打屁股91| 又粗又黑又大的吊av| 国产欧美日韩精品一区二区三区| 国产精品嫩草影院久久久| 国产调教视频在线观看| 精品精品国产高清一毛片一天堂| 亚洲日本视频在线观看| 国产亚洲女人久久久久毛片| 三级av免费观看| 欧美亚洲不卡| 免费一区二区三区| 青娱乐极品盛宴一区二区| 欧美激情视频网址| 久香视频在线观看| 91精品国产综合久久久久久久 | 亚洲第一男人天堂| 无码人妻久久一区二区三区 | 久久9999免费视频| 97人洗澡人人免费公开视频碰碰碰| 免费在线观看污视频| 欧美军同video69gay| 日韩精品乱码久久久久久| 国产精品欧美一区喷水| 中国xxxx性xxxx产国| 日本欧美一区二区三区| 97久久国产亚洲精品超碰热| 国产精品午夜一区二区三区| 5566中文字幕一区二区| 卡通欧美亚洲| 九九热精品视频在线播放| 久青青在线观看视频国产| 日韩欧美亚洲国产另类| 精产国品一区二区| 亚洲国产另类精品专区| 无码人中文字幕| 99re热视频这里只精品| 欧美日韩理论片| 日本欧美一区二区| 国产一区二区在线视频播放| 一区二区免费不卡在线| 国产一区二区免费| 国产美女明星三级做爰| 91国产丝袜在线播放| 国产福利拍拍拍| 一区二区三区高清不卡| 中文字幕美女视频| 久久精品一区二区三区不卡| 中国特级黄色大片| 国产乱人伦精品一区二区在线观看| 亚洲 中文字幕 日韩 无码| 精品福利电影| 欧洲精品视频在线| 97精品视频| 水蜜桃一区二区三区| 欧美日韩直播| 国产欧美日韩综合一区在线观看| 精品国产乱码一区二区三区| 91精品国产综合久久久久久蜜臀| 唐人社导航福利精品| 国产91|九色| 黄视频网站在线观看| 久久久亚洲精品视频| 天堂av资源在线观看| 久久亚洲成人精品| 欧美性猛交xxx乱大交3蜜桃| 日韩久久免费视频| 午夜av免费在线观看| 亚洲护士老师的毛茸茸最新章节 | 亚洲欧美精品在线| 日韩欧美亚洲系列| 国产视频亚洲精品| 午夜福利视频一区二区| 日韩精品免费一线在线观看| 亚州av在线播放| 精品中文视频在线| 青青久在线视频| 亚洲欧美在线一区二区| 精品乱码一区二区三四区视频| 日韩精品在线视频| 青青草在线视频免费观看| 日韩精品免费综合视频在线播放| 天天干,夜夜爽| 国产视频精品免费播放| 青青草观看免费视频在线| 亚洲女人天堂av| 国产高清免费在线播放| 日韩有码视频在线| v天堂福利视频在线观看| 久久69精品久久久久久久电影好| 午夜av在线播放| 久久久人成影片一区二区三区观看 | 日本成人一区| 一区二区成人av| 一级毛片视频在线观看| 久久国产视频网站| 欧美人动性xxxxz0oz| 91av在线播放| 91国拍精品国产粉嫩亚洲一区| 国产精自产拍久久久久久| 精品中文字幕一区二区三区| 精品九九九九| 第九色区aⅴ天堂久久香| 特级西西444| 亚洲一区图片| 911福利视频| 成人av资源在线观看| 中文字幕第4页| 亚洲日本成人在线观看| 日韩欧美视频在线免费观看| 在线观看免费亚洲| 99免费在线视频| 日韩精品在线观看一区| 国产美女在线观看| 97色在线观看免费视频| 成人综合网站| 国产欧美日韩一区二区三区| 日本一二区不卡| 岛国大片在线播放| 免费观看在线综合色| 影音先锋资源av| 欧美极品少妇xxxxⅹ高跟鞋| 麻豆chinese极品少妇| 一本到不卡免费一区二区| 国产女人高潮毛片| 亚洲人成网站777色婷婷| 4438x成人网全国最大| 欧美在线xxx| 日韩中文字幕在线一区| 日本成人黄色免费看| 国产精品v日韩精品v欧美精品网站 | 国产18无套直看片| 亚洲一卡二卡三卡四卡| 艳妇乳肉豪妇荡乳av无码福利 | 91精品国产自产| 亚洲男女一区二区三区| 午夜精品一区二| 亚洲国产成人精品女人久久久| 9色在线视频网站| 欧美一级黄色网| 日韩在线观看中文字幕| 一区二区三区四区不卡| 三级不卡在线观看| 免费a v网站| 一区二区高清视频在线观看| 这里只有精品9| 亚洲网站视频福利| a国产在线视频| 999国内精品视频在线| 久久香蕉国产| 99热手机在线| 久久久久高清精品| 久久精品一二区| 亚洲国产成人在线播放| 欧美四级在线| 999日本视频| 亚洲h色精品| 91精品999| 国产精品久久久爽爽爽麻豆色哟哟 | www.亚洲视频| 日本精品久久中文字幕佐佐木| 国产精品sss在线观看av| 国产成人免费高清视频| 国产在线麻豆精品观看| 成人三级视频在线观看| 欧美日韩一区久久| 成年人视频免费在线观看| 国产精品91久久久久久| 精品国精品国产自在久国产应用| www国产黄色| 久久免费电影网| 日日夜夜操视频| 一本大道久久加勒比香蕉| 欧洲av不卡| 亚洲7777| 久久机这里只有精品| 永久av免费网站| 欧美精品第1页| 综合久久2019| 99在线国产| 亚洲成色精品| 欧美熟妇精品黑人巨大一二三区| 欧美日韩亚洲系列| 三级在线电影| 国产精品视频精品视频| 色乱码一区二区三区网站| 中文字幕 日韩 欧美| 亚洲视频免费在线| 亚洲av无码一区二区乱子伦| 久久久中文字幕| 奇米色欧美一区二区三区| 亚洲成熟丰满熟妇高潮xxxxx| 国产日韩在线不卡| 一区二区三区黄| 久久99视频精品| 全球av集中精品导航福利| 凹凸日日摸日日碰夜夜爽1| 中文乱码免费一区二区| 精品人妻久久久久一区二区三区| 欧美激情视频给我| 深夜福利久久| 午夜不卡福利视频| 亚洲成人动漫av| 国产1区2区3区在线| 成人免费看片视频| 激情六月综合| 久久中文字幕精品| 日韩欧美一级二级三级| 中文字幕在线直播| 亚洲五月六月| 成人免费观看av| 黄色网址中文字幕| 欧美乱妇40p| 九一成人免费视频| 爽爽爽在线观看| 欧美性极品xxxx做受| 黄色片网站在线| 久久99久久精品国产| 另类的小说在线视频另类成人小视频在线 | 五月激情丁香婷婷| 国产欧美日韩最新| 亚洲精一区二区三区| 国产在线免费看| 亚洲国内高清视频| 91精品在线免费视频|