Java读取Maven工程下的配置文件,工具类
Java开发中,经常需要在maven工程中读取src/main/resources下的配置文件:

思路如下:
- Class.getClassLoader() 返回类加载器ClassLoader,进而可以获取到classpath路径下的资源
- ClassLoader.getSystemResourceAsStream() 返回读取指定资源的输入流InputStream
- Properties.load(InputStream inStream) 从输入流InputStream中读取属性列表(键和元素对)
// 步骤1:返回类加载器
ClassLoader classLoader = Test.class.getClassLoader(); // 下面3行代码表示通过ClassLoader可以获取到classpath路径
URL resource = classLoader.getResource("test.xml");
String path = resource.getPath();
System.out.println(path); // 步骤2:返回读取指定资源的输入流
InputStream resourceAsStream = classLoader.getResourceAsStream("test.xml"); // 步骤3:从输入流读取属性
Properties properties = new Properties();
properties.load(resourceAsStream);
附:配置文件读取工具类
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class PropertiesUtil { private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
private static Map<String, PropertiesUtil> propsMap;
Properties properties; public static synchronized PropertiesUtil getInstance(String propName) {
PropertiesUtil instance = null;
if (propsMap == null) {
propsMap = new HashMap<String, PropertiesUtil>();
}
instance = propsMap.get(propName);
if (instance == null) {
instance = new PropertiesUtil(propName);
propsMap.put(propName, instance);
}
return instance;
} private PropertiesUtil(String propName) {
ClassLoader classLoader = PropertiesUtil.class.getClassLoader();
InputStream inStream = classLoader.getResourceAsStream(propName);
properties = new Properties();
try {
properties.load(inStream);
} catch (IOException e) {
throw new RuntimeException("There's no resource file named [" + propName + "]", e);
}
} public String getProperty(String key) {
return properties.getProperty(key);
} public String getProperty(String key, String defaultValue) {
return properties.getProperty(key, defaultValue);
} public int getInt(String key) {
return Integer.valueOf(getProperty(key));
} public int getInt(String key, int defaultValue) {
return getProperty(key) == null ? defaultValue : Integer.valueOf(getProperty(key));
} public long getLong(String key) {
return Long.valueOf(getProperty(key));
} public long getLong(String key, long defaultValue) {
return getProperty(key) == null ? defaultValue : Long.valueOf(getProperty(key));
} public boolean getBoolean(String key) {
return Boolean.parseBoolean(getProperty(key));
} public boolean getBoolean(String key, boolean defaultValue) {
return getProperty(key) == null ? defaultValue : Boolean.parseBoolean(getProperty(key));
} public Properties getProperties() {
return properties;
} public static void main(String[] args) {
PropertiesUtil pUtil = PropertiesUtil.getInstance("otter.properties");
String reString = pUtil.getProperty("otter.cache.zkhost");
logger.info(reString);
}
}
Java读取Maven工程下的配置文件,工具类的更多相关文章
- java读取resource目录下的配置文件
java读取resource目录下的配置文件 1:配置resource目录 下的文件 host: 127.0.0.1 port: 9300 2:读取 / 代表resource目录 InputSt ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
- Java读取maven目录下的*.properties配置文件
public class ReadProperties{ private static String proFileName = "/config/MQSubjectId.propertie ...
- java读取写入oracle的blob字段工具类
import com.hzunitech.fxgk.sys.model.UtFileData;import com.jfinal.kit.PathKit;import com.jfinal.plugi ...
- Java读取properties配置文件工具类
1. PropertyUtils.java package javax.utils; import java.io.InputStream; import java.util.Properties ...
- Maven工程下报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
Maven工程下,webapp下面新建index.jsp文件,报如下错误. 原因很简单,没有安装如下maven依赖包: <dependencies> <!-- JSP相关 --> ...
- Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用
Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...
- Maven 工程下 Spring MVC 站点配置 (一)
最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...
- Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作
详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...
随机推荐
- hdu1089 Ignatius's puzzle
题目 其实这道题不是很难,但是我刚开始拿到这道题的时候不知道怎么做, 因为这个式子我就不知道是干什么的: 65|f(x) 百度解释(若a/b=x...0 称a能被b整除,b能整除a,即b|a,读作& ...
- hdu 5046 二分+DLX模板
http://acm.hdu.edu.cn/showproblem.php?pid=5046 n城市建k机场使得,是每个城市最近机场的距离的最大值最小化 二分+DLX 模板题 #include < ...
- POJ2653判断线段相交
POJ2653 题目大意:按顺序放木棒,问最后所有的木棒中上面没有木棒的木棒的索引是…… 思路:按理说线段相交的题目做的听多了,这个应该不算新鲜,但是这个题,还是让我学到了认真读题,面对这个题很容易想 ...
- web.xml中Filter,Listener,Servlet的区别
一.Servlet Servlet是基本的服务端程序,他来自接口Servlet,接口中有方法service.而Servlet的一个重要实现类,则是tomcat服务器的核心,那就是HttpServlet ...
- Team Foundation Server (TFS)集成Flyway,实现数据库的版本管理
1 概述 在系统开发过程中,我们对软件源代码的版本管理,已经有了比较成熟的解决方案.通过使用TFVC或GIT等源代码管理工具,可以非常方便的对软件代码实现回退.比较.分支合并等版本操作.对于软件依赖的 ...
- gdb用法
mickole@test:~/ctest/05gdb$ gdb simple //开始gdb调试 GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4- ...
- ASP.NET Core使用EF Core操作MySql数据库
ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...
- cmd命令使用笔记
使用资源管理器打开当前路径 explorer %cd%
- 解决微服务网关Ocelot使用AddStoreOcelotConfigurationInConsul后请求404问题
一个小插曲,最近研究 netcore 微服务网关,在使用AddStoreOcelotConfigurationInConsul将配置存到consul后,任何经过网关的请求都出现404,并且没有任何有用 ...
- TensorFlow从1到2(十)带注意力机制的神经网络机器翻译
基本概念 机器翻译和语音识别是最早开展的两项人工智能研究.今天也取得了最显著的商业成果. 早先的机器翻译实际脱胎于电子词典,能力更擅长于词或者短语的翻译.那时候的翻译通常会将一句话打断为一系列的片段, ...