电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java 如何讀取properties文件

瀏覽:73日期:2022-08-21 15:02:06

1.情景展示

java 如何讀取properties文件

將要訪問的接口地址等常用的配置添加到properties文件中,比直接寫到java類中的好處在于:

當我們需要修改相應配置時,直接修改properties文件,重啟tomcat即可,避免了重新編譯引用該配置的java文件,同時,也便于項目的維護。

方式一

通過spring的工具類PropertiesLoaderUtils來實現對properties文件的解析

所需jar包:spring的核心jar包,spring-core-版本號.jar

import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Properties;import org.springframework.core.io.support.PropertiesLoaderUtils;/** * 借助spring讀取Properties文件 * @explain Spring 提供的 PropertiesLoaderUtils * 允許您直接通過基于類路徑的文件地址加載屬性資源 最大的好處就是:實時加載配置文件,修改后立即生效,不必重啟 * @author Marydon * @creationTime 2018年5月23日上午9:58:59 * @version 1.0 * @since * @email marydon20170307@163.com */public class PropertiesUtils { /** * 讀取properties文件 * @param fileName properties文件名及所在路徑 * @explain 參數說明 * 1.傳遞的參數不是properties類型文件,不會報錯,返回的是空Map; * 2.傳遞的參數是根本不存在的properties文件,也不會報錯,返回的是空Map; * 3.傳遞的參數可以帶路徑,可以正常解析到 * @return */ public static Map<String, String> readProperties(String fileName) { Map<String, String> resultMap = new HashMap<String, String>(); try { Properties props = PropertiesLoaderUtils.loadAllProperties(fileName); for (Object key : props.keySet()) {resultMap.put(key.toString(), props.get(key).toString()); } } catch (IOException e) { e.printStackTrace(); } return resultMap; } /** * @param args */ public static void main(String[] args) {// Map map = readProperties('base/web/imageInfo/fileRootDirectories.properties'); Map map = readProperties('fileRootDirectories.properties'); for (Object key : map.keySet()) { System.out.println(key.toString() + '=' + map.get(key).toString()); } // 打印結果 // fileRootPath=uploadFiles }}

這種方式的缺點在于:

每次調用都要重新解析對應的properties文件,所以,我們可以在項目啟動的時候,就把該文件加載到內存中(一次加載解析,永久使用)。

方式二

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * properties文件工具類 * @description * 在該類被加載的時候,它就會自動讀取指定位置的配置文件內容并保存到靜態屬性中,高效且方便,一次加載,可多次使用 * @author: Marydon * @date: 2020年07月13日 0013 16:04 */public class PropertyUtils_old { private static Logger logger = LoggerFactory.getLogger(PropertyUtils_old.class); // 待解析的properties文件名稱 private static final String FILE_NAME = 'bill.properties'; // 用于接收解析過properties文件 private static Properties props; // 靜態代碼塊:在該類被加載到內容中時,該代碼塊會執行 static { // 靜態代碼塊執行時將要執行的方法 loadPropertiesFile(); } synchronized static private void loadPropertiesFile() { logger.debug('開始加載properties文件內容.......'); props = new Properties(); InputStream in = null; try { // 方式一:通過類加載器進行獲取properties文件流(不用添加路徑) in = PropertyUtils_old.class.getClassLoader().getResourceAsStream(FILE_NAME); // 方式二:通過類進行獲取properties文件流(需要加/) // in = PropertyUtils.class.getResourceAsStream('/bill.properties'); props.load(in); } catch (NullPointerException e) { logger.error('bill.properties文件未找到!'); } catch (IOException e) { logger.error('出現IOException!'); } finally { try { if (null != in) { in.close(); } } catch (IOException e) { logger.error('bill.properties文件流關閉出現異常'); } } logger.info('加載properties文件內容完成...........'); logger.info('properties文件內容:' + props); } /* * 獲取properties文件中指定key的value * @date: 2020年07月13日 0013 16:17 * @param: key * @return: java.lang.String */ public static String getProperty(String key) { if (null == props) { loadPropertiesFile(); } return props.getProperty(key); } /* * 獲取properties文件中指定key的value * @date: 2020年07月13日 0013 16:17 * @param: key * @param: defaultValue * @return: java.lang.String */ public static String getProperty(String key, String defaultValue) { if (null == props) { loadPropertiesFile(); } return props.getProperty(key, defaultValue); }}

測試

public static void main(String[] args) { System.out.println(getProperty('bill.czInterfaceAddress'));}

java 如何讀取properties文件

方式一也可以按照方式二的形式,來達到一次加載,永久使用的效果。

以上就是java 如何讀取properties文件的詳細內容,更多關于java 讀取properties文件的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 辊道窑炉,辊道窑炉厂家-山东艾希尔 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 心得体会网_心得体会格式范文模板 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 茅茅虫AI论文写作助手-免费AIGC论文查重_写毕业论文降重 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 商秀—企业短视频代运营_抖音企业号托管| SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 建筑工程资质合作-工程资质加盟分公司-建筑资质加盟 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 |