java读取properties配置文件的方法
app.properties
mail.smtp.host=smtp.163.com
mail.transport.protocol=smtp
import java.io.InputStream;
import java.util.Properties; import cn.zsmy.constant.Constant; public class ReadProperties { public static String host = null;
public static String protocol = null;
public static String auth = null;
public static String port = null;
public static String sender = null;
public static String password = null; //类加载后就执行,在需要的地方直接用类名.属性名即可,如ReadProperties.host,其他类要使用时需要将属性定义成public的,或者提供get方法
static{
loads();
} /**
* 读取properties
*/
public static void loads(){
if(host == null || protocol == null)
{
InputStream is = ReadProperties.class.getResourceAsStream("/app.properties");
Properties dbProps = new Properties();
try {
dbProps.load(is);
host = dbProps.getProperty("mail.smtp.host");
protocol = dbProps.getProperty("mail.transport.protocol");
auth = dbProps.getProperty("mail.smtp.auth");
port = dbProps.getProperty("mail.smtp.port");
sender = dbProps.getProperty("mail.sender");
password = dbProps.getProperty("mail.password");
}catch (Exception e) {
Constant.MY_LOG.error("不能读取属性文件. " +"请确保app.properties在CLASSPATH指定的路径中");
}
}
} /**
* 也可以调方法获取值,这样更万无一失,强烈建议用此方法,防止jvm内存回收后数据为空(看网上说静态属性是不会被回收的,除非类被回收)
* @return
*/
public static String getHost() {
if(host==null){
loads();
}
return host;
} public static String getProtocol() {
if(protocol == null){
loads();
}
return protocol;
} public static String getAuth() {
return auth;
} public static String getPort() {
return port;
} public static String getSender() {
return sender;
} public static String getPassword() {
return password;
} public static void main(String[] args) {
System.out.println(ReadProperties.host+"--------"+ReadProperties.protocol);
getHost();
System.out.println(ReadProperties.host+"--------"+ReadProperties.protocol);
}
}
这个方法不仅能够缓存配置文件内容,还能够做到自动加载配置文件的内容到内存,使用者完全不用考虑手动加载的过程,只需要在需要用到的地方直接调用getHost()即可(因为是静态方法,事先连对像也不用创建的),这样如果内存中有缓存,函数就会直接读取内存中的数据,节省时间,如果没有缓存也不用担心,系统会自动为你加载,使用者完全不用知道其是如何实现的,只需要知道我能直接调用函数获得想要的值就行了
java读取properties配置文件的方法的更多相关文章
- java读取properties配置文件总结
java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...
- java读取properties配置文件信息
一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...
- java读取.properties配置文件的几种方法
读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类.此类继承自java.util. ...
- 【转载】java读取.properties配置文件的几种方法
读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类.此类继承自java.util. ...
- Java 读取 .properties 配置文件的几种方式
Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 DOM 或 SAX 方式解析,而读取 properties 配 ...
- Java 读取 .properties 配置文件
java 开发中,经常要读取 properties 配置文件,下面介绍几种读取方式: 1.基于 InputStream 读取配置文件 该方式的优点在于可以读取任意路径下的配置文件 Properties ...
- Java读取Properties配置文件
1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,使用键值对的形式来保存属性集.不过Properties的键和值都是字符串 ...
- Java读取properties配置文件工具类
1. PropertyUtils.java package javax.utils; import java.io.InputStream; import java.util.Properties ...
- 2017.6.29 java读取.properties配置文件的几种方法
参考来自:http://www.cnblogs.com/s3189454231s/p/5626557.html 关于路径的解释:http://blog.csdn.net/bluishglc/artic ...
随机推荐
- 20151224001 GridView 多按钮的各种使用方法
<asp:GridView ID="GridView1" runat="server" AllowPaging=" ...
- windows下TCP服务器和客户端的实现
服务器 1.初始化 WSAStartup(..) 2.创建Socket s = Socket ( .. ) 3.绑定端口 ret = bind ( ... ) 4.监听 ret = ...
- 基于@AspectJ和schema的aop(一)
在前面我们使用Pointcut和Advice描述切点和增强, 并使用Advisor整合两者描述切面.@AspectJ使用注解来描述切点和增强.两者使用的方式不同, 但是在本质上都是一样的. 我们还是用 ...
- 微软DbHelper
using System; using System.Configuration; using System.Data; using System.Data.Common; using System. ...
- mysql 导入导出的几个常用参数
导出命令: mysqldump -t --skip-extended-insert -utest -p testdb tableA > testdb_tableA.sql 参数说明: -t: 仅 ...
- 实现的时钟(time)
<!doctype html><html lang="en"><head> <script type="text/javascr ...
- ListableBeanFactory
ListableBeanFactory public interface ListableBeanFactory extends BeanFactory 该接口中定义了可以获取配置中所有bean的信息 ...
- JavaScript的循环语句
JavaScript的循环语句 1.JavaScript的循环语句 (1)for循环语句 - 循环代码块一定的次数: (2)for/in循环语句 - 循环遍历对象的属性: (3)while循环语句 - ...
- CODEVS 3145 汉诺塔游戏 递归
题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的 ...
- C++实现二叉树,运用模板,界面友好,操作方便 运行流畅
//.h文件 #ifndef TREE_H #define TREE_H #include<iostream> #include<iomanip> using namespac ...