Spring Boot 项目,读取自定义配置文件属性

  • 1、pom.xml 需要引入的 jar
  • 2、自定义 config.properties 配置文件
  • 3、工具类
  • 4、测试调用

1、pom.xml 需要引入的 jar

以下相关 jar 可根据实际情况做相应替换

        <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.21</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

2、自定义 config.properties 配置文件

config.properties 放在 resources 目录下

 
config.properties 文件内容,根据相关需要自定义

sms.url=app.copen.com
sms.port=8887
sms.accountsid=fdgh4df2hd12sdf56rhd2gh1rt2y1r2e
sms.accounttoken=25r54f4dh4fd4612rty1we5y4554e2we
sms.appid=454jenlk43n65n67k64n7l54n7nlnl33

3、工具类

PropsUtil.class 工具类 :


import org.apache.log4j.Logger;import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;/***    属性文件工具类*/
public final class PropsUtil {private static final  Logger logger = Logger.getLogger(PropsUtil.class);/*** 属性文件工具类*/public static Properties loadProps(String fileName){Properties props=null;InputStream is=null;try {is=Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);if(null==is){throw new FileNotFoundException(fileName+"file is not found!");}props=new Properties();props.load(is);} catch (IOException e) {logger.error("load properties file failure",e);}finally{try {is.close();} catch (IOException e) {logger.error("close input stream failure",e);}}return props;}/** 获取字符型属性(默认值为空字符串)*/public static String getString(Properties props,String key){return getString(props,key,"");}/** 获取字符型属性(可指定默认值)*/public static String getString(Properties props,String key,String defaultValue){String value=defaultValue;if(props.containsKey(key)){value=props.getProperty(key);}return value;}/** 获取数值型属性(默认值为0)*/public static int getInt(Properties props,String key){return getInt(props,key,0);}/** 获取数值型属性(可指定默认值)*/public static int getInt(Properties props,String key,int defaultValue){int value=defaultValue;if(props.containsKey(key)){value=CastUtil.castInt(props.getProperty(key));}return value;}/** 获取布尔型属性(默认为false)*/public static boolean getBoolean(Properties props,String key){return getBoolean(props,key,false);}/** 获取布尔型属性(可指定默认值)*/public static boolean getBoolean(Properties props,String key,Boolean defaultValue){boolean value=defaultValue;if(props.containsKey(key)){value=CastUtil.castBoolean(props.getProperty(key));}return value;}
}

CastUtil.class 工具类:


import org.apache.commons.lang3.StringUtils;/** 转型操作工具类*/
public final class CastUtil {/** 转为String类*/public static String castString(Object obj){return CastUtil.castString(obj,"");}/** 转为String类(提供默认值)*/public static String castString(Object obj,String defaultValue){return obj != null ? String.valueOf(obj) : defaultValue;}/** 转为double型*/public static double castDouble(Object obj){return CastUtil.castDouble(obj,0);}/** 转为double型,提供默认值*/public static double castDouble(Object obj,double defaultValue){double doubleValue=defaultValue;if(obj!=null){String strValue =castString(obj);if(StringUtils.isNotEmpty(strValue)){try {doubleValue=Double.parseDouble(strValue);} catch (NumberFormatException e) {doubleValue=defaultValue;}}}return doubleValue;}/** 转为long型*/public static long castLong(Object obj){return CastUtil.castLong(obj,0);}/** 转为long型,提供默认值*/public static long castLong(Object obj,long defaultValue){long longValue=defaultValue;if(obj!=null){String strValue=castString(obj);if(StringUtils.isNotEmpty(strValue)){try {longValue=Long.parseLong(strValue);} catch (NumberFormatException e) {longValue=defaultValue;}}}return longValue;}/** 转为int型*/public static int castInt(Object obj){return CastUtil.castInt(obj,0);}/** 转为int型(提供默认值)*/public static int castInt(Object obj,int defaultValue){int intValue=defaultValue;if(obj!=null){String strValue=castString(obj);if(StringUtils.isNotEmpty(strValue)){try {intValue=Integer.parseInt(strValue);} catch (NumberFormatException e) {intValue=defaultValue;}}}return intValue;}/** 转为boolean型*/public static boolean castBoolean(Object obj){return CastUtil.castBoolean(obj,false);}/** 转为boolean型(提供默认值)*/public static boolean castBoolean(Object obj,boolean defaultValue){boolean booleanValue=defaultValue;if(obj!=null){booleanValue=Boolean.parseBoolean(castString(obj));}return booleanValue;}}

4、测试调用


import com.xxx.xx.util.PropsUtil;/*** @author * @title: GetConfigValue* @description: TODO* @date 2019/8/15 12:52*/
public class GetConfigValue {public static void main(String[] args) {// 获取自定义配置文件 config.properties 中的 sms.url 属性值String smsUrl =PropsUtil.getString(PropsUtil.loadProps("config.properties"),"sms.url");System.out.println("sms.url 的值为:" + smsUrl);// 获取自定义配置文件 config.properties 中的 sms.port 属性值String amsPort =PropsUtil.getString(PropsUtil.loadProps("config.properties"),"sms.port");System.out.println("sms.port 的值为:" + amsPort);}}

运行结果:

 
读取自定义配置文件成功 ~ ~

读取自定义配置文件属性值相关推荐

  1. SpringBoot中通过@Value获取自定义配置的值

    场景 在SpringBoot项目中的application.properties中定义变量,要在 controller中获取自定义配置的值. 实现 打开 application.properties ...

  2. android 读取manifestPlaceholders配置的值

    build.graadle中manifestPlaceholders = [UMENG_CHANNEL_VALUE: "百度手机助手",KAI_PING_ID_VALUE: &qu ...

  3. Tigase 7.1.5 读取自定义配置 重写 tigase.conf.Configurator 和 MessageRouter

    1.新建 Configurator 文件继承   tigase.conf.Configurator 重写 import tigase.conf.Configurator;/*** <p>* ...

  4. springboot @PropertySource+@Value注入properties配置文件属性值

  5. 如何在.config文件自定义配置节

    在.NET程序中一般都有个应用程序配置文件在ASP.NET中是web.config,在控制台应用程序和Windows应用程序中是app.config.我们通常使用此配置文件来设置一些程序会用到的信息, ...

  6. C# App.config 自定义 配置节

    方法一. App.config <?xml version="1.0" encoding="utf-8" ?> <configuration& ...

  7. 【SpringBoot零基础案例08】【IEDA 2021.1】SpringBoot获取核心配置文件application.properties中的自定义配置

    新建模块 在配置文件中进行自定义的配置 在java代码中使用@Value("${属性名}")来获取自定义配置的值,这个注解的位置不是固定的,可以在任何需要用到自定义值的地方使用 I ...

  8. springboot读取json文件_SpringBoot:配置文件属性读取

    SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件.我们可以在此文件中写一些自己想要的配置信息,然后在用 ...

  9. .Net Core 自定义配置源从配置中心读取配置

    配置,几乎所有的应用程序都离不开它..Net Framework时代我们使用App.config.Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再 ...

  10. 创建前缀一样的文件_SpringBoot:配置文件属性读取

    SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件.我们可以在此文件中写一些自己想要的配置信息,然后在用 ...

最新文章

  1. ASSERT(断言)的用法
  2. Why I Love My Virtual PCs
  3. LeetCode - Valid Sudoku
  4. 多线程原来是这么简单
  5. idea无法忍受_不要成为无法忍受的软件开发人员
  6. HTML复古游戏官网模板
  7. 第一篇:容易遗忘的“枚举”
  8. ajax 购物车 c#,C#AJAX实例
  9. 微软分拆小冰业务并独立发展,沈向洋任董事长
  10. PostgreSQL高级扩展之IP4R
  11. Android将网页转为pDf,UrlToPDF 输入网址直接将网页转存为 PDF 档(Android)
  12. 假如斯诺登生活在2023年
  13. Cipher的初应用
  14. 致敬科比,实现查询科比每赛季数据的Web服务器
  15. 猿辅导 x DorisDB:构建统一OLAP平台,全面升级数据分析能力
  16. 5.2 lilyglyphs包
  17. 算法实践-遗传算法GA
  18. 深入浅出聊聊Java函数式编程思想
  19. 06、NMAP高级使用技巧和漏洞扫描发现
  20. poi设置excel行高

热门文章

  1. 安装.NET Framework 4,一直停留在正在安装 .NET Framework 4 Client Profile
  2. Structs的执行流程
  3. 计算机快捷键屏幕保护是什么,电脑屏保快捷键.pptx
  4. Delphi FireMonkey 的动画以及多线程
  5. 【历史上的今天】9 月 14 日:中国第一封电子邮件;世界上最早的电子银行系统;微软发布 Windows Me
  6. HttpSession对象
  7. 分享7个免费学习Java的优秀在线网站
  8. 硬件设计论坛_零基础学硬件工程师到哪里去培训 上EDA365电子论坛
  9. C# WinForm拖拽文件+获取exe程序所在目录上上上级目录+复制单个文件并保存+复制某文件夹内文件到另一文件夹
  10. 4412 使用小度wifi