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

Java代碼讀取properties配置文件的示例代碼

 更新時(shí)間:2023年05月03日 08:54:19   作者:Login  
這篇文章主要介紹了Java代碼讀取properties配置文件,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

讀取properties配置文件

package com.easycrud.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
/**
 * @BelongsProject: EasyCrud
 * @BelongsPackage: com.easycrud.utils
 * @Author: xpx
 * @Email: 2436846019@qq.com
 * @CreateTime: 2023-05-02  16:05
 * @Description: 讀取properties配置文件工具類
 * @Version: 1.0
 */
public class PropertiesUtils {
    private static Properties props = new Properties();
    private static Map<String,String> PROPER_MAP = new ConcurrentHashMap<String, String>();
    /**
     * 項(xiàng)目初始化時(shí)就去讀取配置文件
     */
    static {
        InputStream is = null;
        try{
            is = PropertiesUtils.class.getClassLoader().getResourceAsStream("application.properties");
            props.load(is);
            Iterator<Object> iterator = props.keySet().iterator();
            while (iterator.hasNext()){
                String key = (String) iterator.next();
                PROPER_MAP.put(key,props.getProperty(key));
            }
        }catch (Exception e){
        }finally {
            if (is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * 對(duì)外提供方法通過key取值
     * @param key
     * @return
     */
    public static String getString(String key) {
        return PROPER_MAP.get(key);
    }
    /**
     * 測(cè)試能否成功取值
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("測(cè)試打?。?+getString("db.driver.name"));
    }
}

新手引導(dǎo)

Properties

Properties 繼承于 Hashtable。表示一個(gè)持久的屬性集.屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。

ConcurrentHashMap

HashTable是一個(gè)線程安全的類,它使用synchronized來鎖住整張Hash表來實(shí)現(xiàn)線程安全,即每次鎖住整張表讓線程獨(dú)占,相當(dāng)于所有線程進(jìn)行讀寫時(shí)都去競(jìng)爭(zhēng)一把鎖,導(dǎo)致效率非常低下。ConcurrentHashMap可以做到讀取數(shù)據(jù)不加鎖,并且其內(nèi)部的結(jié)構(gòu)可以讓其在進(jìn)行寫操作的時(shí)候能夠?qū)㈡i的粒度保持地盡量地小,允許多個(gè)修改操作并發(fā)進(jìn)行,其關(guān)鍵在于使用了鎖分段技術(shù)。它使用了多個(gè)鎖來控制對(duì)hash表的不同部分進(jìn)行的修改。對(duì)于JDK1.7版本的實(shí)現(xiàn), ConcurrentHashMap內(nèi)部使用段(Segment)來表示這些不同的部分,每個(gè)段其實(shí)就是一個(gè)小的Hashtable,它們有自己的鎖。只要多個(gè)修改操作發(fā)生在不同的段上,它們就可以并發(fā)進(jìn)行。JDK1.8的實(shí)現(xiàn)降低鎖的粒度,JDK1.7版本鎖的粒度是基于Segment的,包含多個(gè)HashEntry,而JDK1.8鎖的粒度就是HashEntry(首節(jié)點(diǎn))。

static

static代碼塊一般用于初始化類中的靜態(tài)變量,該靜態(tài)代碼塊在類加載過程中的初始化階段執(zhí)行,并且只執(zhí)行一次。

InputStream

字節(jié)輸入流。

try...cache...finally

try{

? 可能發(fā)生異常的代碼

}catch(可能發(fā)生的異常類型 異常對(duì)象名){

? 當(dāng)前異常類型的處理方式

}finally{

? 一定要執(zhí)行的代碼

}

IOException

IOException 是在使用流、文件和目錄訪問信息時(shí)引發(fā)的異常的基類

e.printStackTrace()

在命令行打印異常信息在程序中出錯(cuò)的位置及原因。

Class.getClassLoader().getResourceAsStream()

Class是當(dāng)前類的Class對(duì)象,Class.getClassLoader()是獲取當(dāng)前類的類加載器。類加載器的大概作用是當(dāng)需要使用一個(gè)類時(shí),加載該類的".class"文件,并創(chuàng)建對(duì)應(yīng)的class對(duì)象,將class文件加載到虛擬機(jī)的內(nèi)存。getResourceAsStream()是獲取資源的輸入流。類加載器默認(rèn)是從classPath路徑加載資源。

load()

Properties的方法是逐行讀取properties配置文件,分隔成兩個(gè)字符串key和value,將他們放進(jìn)Properties對(duì)象中。

Iterator

迭代器 it 的三個(gè)基本操作是 next 、hasNext 和 remove。

調(diào)用 it.next() 會(huì)返回迭代器的下一個(gè)元素,并且更新迭代器的狀態(tài)。

調(diào)用 it.hasNext() 用于檢測(cè)集合中是否還有元素。

調(diào)用 it.remove() 將迭代器返回的元素刪除。

keySet()

如果有一個(gè)Map對(duì)象,可以使用 map.keySet()方法獲取所有的key值。

A=xxx.iterator()

獲取迭代器保存在A中。

到此這篇關(guān)于Java代碼讀取properties配置文件的文章就介紹到這了,更多相關(guān)Java讀取properties文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring框架作為一個(gè)輕量級(jí)的開源框架,在企業(yè)應(yīng)用開發(fā)中被廣泛使用,在Spring事務(wù)管理中,事務(wù)傳播行為是非常重要的一部分,它定義了方法如何參與到已經(jīng)存在的事務(wù)中或者如何開啟新的事務(wù),本文將詳細(xì)介紹Spring事務(wù)中的幾種事務(wù)傳播行為,詳細(xì)講解具體使用方法
    2023-06-06
  • interrupt()和線程終止方式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    interrupt()和線程終止方式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    線程的thread.interrupt()方法是中斷線程,將會(huì)設(shè)置該線程的中斷狀態(tài)位,即設(shè)置為true,中斷的結(jié)果線程是死亡、還是等待新的任務(wù)或是繼續(xù)運(yùn)行至下一步,就取決于這個(gè)程序本身
    2017-05-05
  • Java開發(fā)學(xué)習(xí)之Bean的生命周期詳解

    Java開發(fā)學(xué)習(xí)之Bean的生命周期詳解

    從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個(gè)過程就是一個(gè)生命周期。本文將通過示例為大家詳細(xì)講講Bean的生命周期,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • java中Struts2文件上傳問題詳解

    java中Struts2文件上傳問題詳解

    文件上傳和文件下載是我們?cè)趙eb應(yīng)用程序中常用的兩個(gè)功能,在java中,實(shí)現(xiàn)這兩種功能的方式也有很多種,其中struts2就給我們提供了一種算是比較簡(jiǎn)單的方式吧,下面我們就一起來看一下,
    2015-07-07
  • 解決jasperreport導(dǎo)出的pdf每頁顯示的記錄太少問題

    解決jasperreport導(dǎo)出的pdf每頁顯示的記錄太少問題

    這篇文章主要介紹了解決jasperreport導(dǎo)出的pdf每頁顯示的記錄太少問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • springboot swagger2注解使用的教程

    springboot swagger2注解使用的教程

    這篇文章主要介紹了springboot swagger2注解使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java之JFrame輸出Helloworld實(shí)例

    Java之JFrame輸出Helloworld實(shí)例

    這篇文章主要介紹了Java之JFrame輸出Helloworld的方法,以輸出Helloworld的實(shí)例分析了JFrame的簡(jiǎn)單入門技巧,需要的朋友可以參考下
    2015-02-02
  • SpringSecurity實(shí)現(xiàn)自定義用戶認(rèn)證方案

    SpringSecurity實(shí)現(xiàn)自定義用戶認(rèn)證方案

    Spring?Security?實(shí)現(xiàn)自定義用戶認(rèn)證方案可以根據(jù)具體需求和業(yè)務(wù)場(chǎng)景進(jìn)行設(shè)計(jì)和實(shí)施,滿足不同的安全需求和業(yè)務(wù)需求,這種靈活性使得認(rèn)證機(jī)制能夠更好地適應(yīng)各種復(fù)雜的環(huán)境和變化?,本文給大家介紹了SpringSecurity實(shí)現(xiàn)自定義用戶認(rèn)證方案,需要的朋友可以參考下
    2025-01-01
  • 關(guān)于@RequestBody和@RequestParam注解的使用詳解

    關(guān)于@RequestBody和@RequestParam注解的使用詳解

    這篇文章主要介紹了關(guān)于@RequestBody和@RequestParam注解的使用詳解,本文十分具有參考意義,希望可以幫助到你,如果有錯(cuò)誤的地方還望不吝賜教
    2023-03-03
  • java基于spring注解AOP的異常處理的方法

    java基于spring注解AOP的異常處理的方法

    本篇文章主要介紹了java基于spring注解AOP的異常處理的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02

最新評(píng)論

什邡市| 印江| 胶南市| 新营市| 衡水市| 临桂县| 东阳市| 开封市| 安泽县| 宾阳县| 安达市| 开阳县| 启东市| 镇坪县| 邢台县| 滨州市| 施秉县| 化德县| 射洪县| 将乐县| 阿克| 子长县| 福鼎市| 广灵县| 内江市| 镇平县| 汝南县| 宁强县| 锦屏县| 墨脱县| 资源县| 台前县| 平安县| 汝南县| 皮山县| 蛟河市| 吉林省| 依安县| 乐清市| 宽城| 宜丰县|