亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

Java如何讀取配置文件并賦值靜態(tài)變量

瀏覽:117日期:2022-08-23 08:51:05

應(yīng)用場(chǎng)景

項(xiàng)目開發(fā)中某個(gè)功能需要抽取成方法寫成一個(gè)工具類,提供給別人使用。寫過(guò)工具類的人都知道,工具類中的方法一般都是靜態(tài)方法,可以直接使用類名點(diǎn)方法名調(diào)用,

使用很方便,比如判斷某個(gè)對(duì)象是否為null的方式Objects.equals().由于我寫的這個(gè)工具類中需要讀取配置文件中的內(nèi)容,可是常規(guī)方式注入成員變量時(shí)都不是靜態(tài)的,不

能直接調(diào)用,比如這種方式:

@Data@Componentpublic class GBaseApiConfig {@Value('${gbase.api.prefix}')private String gbaseApi;}

工具類中的靜態(tài)方法直接調(diào)用這種方式注入的成員變量會(huì)出現(xiàn)空指針異常,因?yàn)镴ava中的語(yǔ)法規(guī)定靜態(tài)的方法只能調(diào)用靜態(tài)的方法或者是成員變量,否則會(huì)報(bào)錯(cuò)如下:

Java如何讀取配置文件并賦值靜態(tài)變量

想在靜態(tài)方法中使用其他非靜態(tài)的成員變量或者是方法只能通過(guò)創(chuàng)建對(duì)象的方式來(lái)調(diào)用,可是工具類中不可能這么干,不然就失去工具類的意義了。于是想到

如下方法

方法一

通過(guò)靜態(tài)代碼塊來(lái)讀取、加載配置文件中的內(nèi)容,代碼如下

Java如何讀取配置文件并賦值靜態(tài)變量

先定義一個(gè)靜態(tài)的成員變量,然后在靜態(tài)代碼塊中讀取需要的配置文件信息,在給靜態(tài)變量賦值。這種方式親自測(cè)試完全可用。

方法二

可是過(guò)了一段時(shí)間后,項(xiàng)目經(jīng)理讓我們修改代碼,原因是希望項(xiàng)目中的代碼風(fēng)格統(tǒng)一,全部都使用@Value注解注入的方式。

很快一個(gè)同事就找到一個(gè)可行的辦法,代碼如下

Java如何讀取配置文件并賦值靜態(tài)變量

實(shí)現(xiàn)spring中的InitializingBean接口,然后重寫afterPropertiesSet方法即可。實(shí)現(xiàn)方式為先將配置文件中的值注入到一個(gè)成員變量中,然后通過(guò)方法

afterPropertiesSet實(shí)現(xiàn)工具類的初始化,這樣就可以將配置文件中的信息注入到工具類中。測(cè)試可用。

Java如何讀取配置文件并賦值靜態(tài)變量

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产精品免费一区二区区 | 国外免费一级 | 特别福利视频在线观看 | 欧美特欧美特级一片 | 日产欧美亚洲 | 久久一区二区三区99 | 香蕉草草久在视频在线播放 | 91麻豆视频网站 | 久久久日本精品一区二区三区 | 国产高清国产专区国产精品 | 成人一级毛片 | 日韩成人免费aa在线看 | 久久青草18免费观看网站 | 国产精品免费大片一区二区 | 亚洲欧美日韩成人 | 美女任你躁免费视频 | 三级成人影院 | 久久香蕉国产线看观看乱码 | 国产亚洲精品一区二区在线播放 | 国产三级网站 | 在线黄色毛片 | 日本0930免费视频 | 国产精品福利无圣光一区二区 | 国产精品98福利小视频 | 草久久网 | 99成人国产精品视频 | 亚洲成本人网亚洲视频大全 | 亚洲一区欧美日韩 | 日韩精品区 | 国产精品宅男在线观看 | 国产视频一区二区 | 久久国产精品一区二区 | 成人午夜小视频手机在线看 | 色天天天综合色天天碰 | 天天影视色香欲综合网老头 | 色婷婷一区二区三区四区成人 | 伊人蕉久影院 | 三级网址在线播放 | 九九热线 | 九九久久99综合一区二区 | 欧美一级毛片欧美一级 |