日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類(lèi)

瀏覽:122日期:2023-07-07 14:43:49
目錄一、萬(wàn)能的字符串二、自定義轉(zhuǎn)換類(lèi)三、總結(jié)一、萬(wàn)能的字符串

當(dāng)然,任何時(shí)候都可以使用字符串作為屬性的值,從配置文件里讀取出來(lái),如下:

配置文件內(nèi)容為:

pkslow.admin=larry|18|admin@pkslow.com

通過(guò)|分割,分別是名字、年齡和郵箱。

對(duì)應(yīng)屬性為:

@Value('${pkslow.admin}')private String admin;

使用字符串,總是可以獲取,并且不會(huì)報(bào)錯(cuò)。我們可以在使用屬性的時(shí)候,再轉(zhuǎn)換成其它Bean。

但這樣做有一些問(wèn)題:

無(wú)法做配置檢驗(yàn),不管是否配置錯(cuò)誤,String類(lèi)型的屬性都是可以讀取的; 任何地方使用,都需要做顯式轉(zhuǎn)換。二、自定義轉(zhuǎn)換類(lèi)

使用自定義轉(zhuǎn)換類(lèi)是更方便和安全的做法。我們來(lái)看看怎么實(shí)現(xiàn)。

先定義一個(gè)Java Bean,用以表示實(shí)際的配置內(nèi)容:

package com.pkslow.cloud.rest.model;public class Admin { private String name; private Integer age; private String email; public Admin(String name, Integer age, String email) {this.name = name;this.age = age;this.email = email; } //getter and setter}

接著肯定需要一個(gè)轉(zhuǎn)換類(lèi),需要實(shí)現(xiàn)Converter接口:

package com.pkslow.cloud.rest.model;import org.springframework.core.convert.converter.Converter;public class AdminConverter implements Converter<String, Admin> { @Override public Admin convert(String s) {String[] strings = s.split('|');return new Admin(strings[0], Integer.parseInt(strings[1]), strings[2]); }}

這個(gè)轉(zhuǎn)換類(lèi)就是轉(zhuǎn)換邏輯,如果把字符串轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)。

完成以上兩步,關(guān)鍵是如果告訴Spring我具備了這個(gè)轉(zhuǎn)換能力,并幫我轉(zhuǎn)換。需要把轉(zhuǎn)換類(lèi)綁定一下:

package com.pkslow.cloud.rest.config;import com.pkslow.cloud.rest.model.AdminConverter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.support.ConversionServiceFactoryBean;import java.util.Collections;@Configurationpublic class AdminConversionServiceConfig { @Bean public ConversionServiceFactoryBean conversionService() {ConversionServiceFactoryBean factoryBean = new ConversionServiceFactoryBean();factoryBean.setConverters(Collections.singleton(new AdminConverter()));return factoryBean; }}

有了以上功能,使用就非常簡(jiǎn)單了。配置不變,使用如下:

package com.pkslow.cloud.rest;import com.pkslow.cloud.rest.model.Admin;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class PkslowController { @Value('${pkslow.admin}') private Admin adminBean; @GetMapping('/getAdminBean') public Admin getAdminBean() {return adminBean; }}

屬性的類(lèi)型為Admin,是一個(gè)自定義的類(lèi)。啟動(dòng)訪問(wèn)后獲取如下:

$ curl localhost:8081/getAdminBean

{'name':'larry','age':18,'email':'admin@pkslow.com'}

說(shuō)明成功讀取了配置,并轉(zhuǎn)換成我們想要的domain Object。

嘗試把配置改為:pkslow.admin=larry|18a|admin@pkslow.com,則啟動(dòng)時(shí)會(huì)報(bào)錯(cuò):

Caused by: org.springframework.core.convert.ConversionFailedException: 

Failed to convert from type [java.lang.String] to type [@org.springframework.beans.factory.annotation.Value com.pkslow.cloud.rest.model.Admin] 

for value ’larry|18a|admin@pkslow.com’; 

nested exception is java.lang.NumberFormatException: For input string: '18a'

可以做配置檢查。

三、總結(jié)

自定義轉(zhuǎn)換類(lèi)還是非常有用的。

代碼請(qǐng)查看:https://github.com/LarryDpk/pkslow-samples

淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類(lèi)

以上就是淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類(lèi)的詳細(xì)內(nèi)容,更多關(guān)于Spring自定義轉(zhuǎn)換類(lèi)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美欧美黄在线二区| 亚洲高清不卡| 999在线观看精品免费不卡网站| 日韩欧美三区| 国产视频一区欧美| 亚洲精品一区二区妖精| 欧美午夜精品一区二区三区电影| 国产精品中文字幕亚洲欧美| 欧美日韩va| 麻豆精品av| 色乱码一区二区三区网站| 欧美激情另类| 色88888久久久久久影院| 欧美精品高清| 亚洲三级在线| 久久精品99久久久| 久久99性xxx老妇胖精品| 久久精品国产99国产| 国产乱码精品一区二区亚洲| 国产日韩在线观看视频| 国产精品白丝av嫩草影院| 国产成人精品一区二区免费看京 | 欧美日韩xxxx| 91一区二区三区四区| 精品欧美激情在线观看| 亚洲精品乱码| 亚洲黄色免费看| 亚洲三级国产| 一本大道色婷婷在线| 日韩影院免费视频| 麻豆免费精品视频| 黄色av日韩| 久久中文精品| 亚洲精品自拍| 国产高清一区| 成人在线免费观看网站| 视频一区免费在线观看| a国产在线视频| 国产亚洲久久| 三级在线观看一区二区| 日本综合字幕| 精品国产亚洲一区二区三区在线 | 91精品亚洲| 美女视频黄免费的久久| 亚洲精品大全| 国产综合视频| 日韩精品诱惑一区?区三区| 在线观看一区| 中文久久精品| 亚洲二区在线| 欧美成人精品三级网站| 日本久久黄色| 久久免费福利| 麻豆精品视频在线观看| 日韩av在线免费观看不卡| 国产亚洲永久域名| 亚洲高清影视| 成人av三级| 97se综合| 久久久人人人| 少妇精品导航| 欧美日韩精品一本二本三本| 九一成人免费视频| 国产精品99一区二区| 91亚洲国产| 中文字幕一区日韩精品| 欧美特黄一级| 鲁大师成人一区二区三区| 欧美aa一级| 中文字幕人成乱码在线观看 | 亚洲欧美日韩高清在线| 精品亚洲成人| 久久国产免费| 在线综合亚洲| 日本午夜精品一区二区三区电影| 综合国产精品| 国产高清亚洲| 亚洲成人不卡| 中文亚洲免费| 国产精品一区二区三区www| 久久精品五月| 欧美日韩国产亚洲一区| 亚洲+小说+欧美+激情+另类| 日韩精品免费视频人成| 国产一区二区三区不卡av| 久久亚洲成人| 亚洲综合国产| 国产精品久久久久久妇女| 九九色在线视频| 美女日韩在线中文字幕| 91精品国产自产精品男人的天堂| 老鸭窝一区二区久久精品| 欧美亚洲在线日韩| 亚洲一区av| 国产精品多人| 国精品一区二区三区| 青青草精品视频| 精品久久亚洲| 日韩精品一区二区三区中文 | 国产精品啊啊啊| 亚洲一级特黄| 欧美国产三级| 精品一区欧美| 美女视频黄免费的久久| 午夜日本精品| 国产成人77亚洲精品www| 免费在线观看视频一区| 成人一二三区| 另类小说一区二区三区| 蜜桃久久精品一区二区| 久久免费福利| 欧美日韩一区二区国产| 99成人在线| 欧美日韩中文一区二区| 青草综合视频| 午夜亚洲福利在线老司机| 天堂中文av在线资源库| 国产精品白丝久久av网站| 日韩综合一区二区| 亚洲欧美日韩高清在线| 九九久久国产| 免费在线亚洲欧美| 国产精品啊v在线| 国产精品美女久久久久久不卡| 亚洲伊人影院| 日本va欧美va瓶| 日本午夜精品久久久久| 欧美日韩视频免费看| 欧美中文高清| 好吊视频一区二区三区四区| 国产综合精品| 亚洲一级在线| 在线观看视频免费一区二区三区| 欧美亚洲精品在线| 国产亚洲亚洲| 视频一区日韩精品| 天堂精品久久久久| 国产精品久久久久久久久久白浆| 麻豆国产欧美一区二区三区| 国内精品伊人| 91精品国产乱码久久久久久久| 欧美精品一区二区三区精品| 午夜av一区| 婷婷精品久久久久久久久久不卡| 久久都是精品| 久久国产麻豆精品| 国产一区丝袜| 欧美 日韩 国产一区二区在线视频| 视频一区中文| 国产日韩在线观看视频| 亚洲爱爱视频| 中文字幕日本一区| 久久精品三级| 丝袜美腿亚洲一区| 精品黄色一级片| 亚洲一区日韩| 久久伊人国产| 三级亚洲高清视频| 福利精品一区| 欧美日韩一区二区三区视频播放| 四虎精品一区二区免费| 亚洲午夜天堂| 国产日产高清欧美一区二区三区| 色老板在线视频一区二区| 国产色99精品9i| 免费中文字幕日韩欧美| 精品国产乱码久久久久久1区2匹| 国产亚洲午夜| 一区二区精品伦理...| 日韩精品视频中文字幕| 精品一区免费| 美女一区网站| 亚洲人成亚洲精品| 黑丝美女一区二区| 久久精品999| 亚洲精品大全| 国产农村妇女精品一二区| 日韩成人a**站| 国产精品777777在线播放| 美女91精品| 久久亚洲影院| 99精品视频精品精品视频| 国产一区二区三区国产精品| 国产视频网站一区二区三区| 综合一区av| 免费日韩精品中文字幕视频在线| 美女福利一区二区三区| 国产精品第一国产精品| 欧美性www| 蜜臀精品久久久久久蜜臀| 久久久国产亚洲精品| 日韩中文视频| 日韩在线短视频| 四虎影视精品| 秋霞影视一区二区三区| 蜜臀久久精品| 欧美1级日本1级| 精品1区2区3区4区| 99亚洲精品| 亚洲一区二区三区久久久|