国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

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

應(yīng)用場景

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

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

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

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

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

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

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

如下方法

方法一

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

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

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

方法二

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

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

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

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

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

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 鄂州市| 尚志市| 晴隆县| 呼图壁县| 彩票| 凯里市| 遂溪县| 上林县| 长阳| 岗巴县| 荆门市| 都安| 崇左市| 广河县| 措勤县| 乐东| 平顶山市| 什邡市| 南木林县| 吴忠市| 天柱县| 克什克腾旗| 垦利县| 务川| 潜山县| 益阳市| 佛冈县| 林甸县| 七台河市| 江川县| 梁平县| 鱼台县| 武冈市| 乡宁县| 安乡县| 常山县| 二连浩特市| 吴旗县| 清丰县| 志丹县| 田阳县|