如何读properties中的配置信息

作者&投稿:兀有雯 (若有异议请与网页底部的电邮联系)
如何从Properties配置文件读取值~

最常用读取properties文件的方法
InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用:
InputStream ins = this.getClass().getResourceAsStream("/cn/zhao/properties/testPropertiesPath2.properties");
Java中获取路径方法
获取路径的一个简单实现
反射方式获取properties文件的三种方式

1 反射方式获取properties文件最常用方法以及思考:
Java读取properties文件的方法比较多,网上最多的文章是"Java读取properties文件的六种方法",但在Java应用中,最常用还是通过java.lang.Class类的getResourceAsStream(String name) 方法来实现,但我见到众多读取properties文件的代码中,都会这么干:

InputStream in = getClass().getResourceAsStream("资源Name");

这里面有个问题,就是getClass()调用的时候默认省略了this!我们都知道,this是不能在static(静态)方法或者static块中使用的,原因是static类型的方法或者代码块是属于类本身的,不属于某个对象,而this本身就代表当前对象,而静态方法或者块调用的时候是不用初始化对象的。

问题是:假如我不想让某个类有对象,那么我会将此类的默认构造方法设为私有,当然也不会写别的共有的构造方法。并且我这个类是工具类,都是静态的方法和变量,我要在静态块或者静态方法中获取properties文件,这个方法就行不通了。

那怎么办呢?其实这个类就不是这么用的,他仅仅是需要获取一个Class对象就可以了,那还不容易啊--
取所有类的父类Object,用Object.class难道不比你的用你正在写类自身方便安全吗 ?呵呵,下面给出一个例子,以方便交流。
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;

/**
* 读取Properties文件的例子
* File: TestProperties.java
* User: leizhimin
* Date: 2008-2-15 18:38:40
*/
public final class TestProperties {
private static String param1;
private static String param2;

static {
Properties prop = new Properties();
InputStream in = Object. class .getResourceAsStream( "/test.properties" );
try {
prop.load(in);
param1 = prop.getProperty( "initYears1" ).trim();
param2 = prop.getProperty( "initYears2" ).trim();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 私有构造方法,不需要创建对象
*/
private TestProperties() {
}

public static String getParam1() {
return param1;
}

public static String getParam2() {
return param2;
}

public static void main(String args[]){
System.out.println(getParam1());
System.out.println(getParam2());
}
}

运行结果:

151
152
当然,把Object.class换成int.class照样行,呵呵,大家可以试试。

另外,如果是static方法或块中读取Properties文件,还有一种最保险的方法,就是这个类的本身名字来直接获取Class对象,比如本例中可写成TestProperties.class,这样做是最保险的方法
2 获取路径的方式:
File fileB = new File( this .getClass().getResource( "" ).getPath());

System. out .println( "fileB path: " + fileB);

2.2获取当前类所在的工程名:
System. out .println("user.dir path: " + System. getProperty ("user.dir"))3 获取路径的一个简单的Java实现
/**


其中id为读取文件以后的bean id,可以通过这个id获取文件中对应属性的值,如config.test代表获取文件中test属性的值

如何在spring中读取properties配置文件里面的信息

<!-- 正文开始 -->

一般来说。我们会将一些配置的信息放在。properties文件中。
然后使用${}将配置文件中的信息读取至spring的配置文件。

那么我们如何在spring读取properties文件呢。

1.首先。我们要先在spring配置文件中。定义一个专门读取properties文件的类.
例:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:jdbc.properties</value>
<!--要是有多个配置文件,只需在这里继续添加即可 -->
</list>
</property>
</bean>

这里为什么用locations(还有一个location)
是因为。一般来说。我们的项目里面。配置文件可能存在多个。
就算是只有一个。那将来新添加的话。只需在下面再加一个value标签即可。
而不必再重新改动太多。(当然。性能上是否有影响,这个以当前这种服务器的配置来说。是基科可以忽略不计的)。

然后我们就可以在jdbc.properties文件中填写具体的配置信息了。

<!-- 配置C3P0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>

jdbc.properties文件写的信息。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root

附加一个列子:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:/data/pc-config/passport.properties</value>
<value>classpath:memcached.properties</value>
</list>
</property>
</bean>

classpath:是指的当前类文件的目录下。

file:在window下是指的当前分区(比如你的项目是放在d盘,则是在d:/data/pc-config/passport.properties)

在linux下,则是当前路径下的文件/data/pc-config/passport.properties


柳南区19261512668: 如何读取.properties文件配置的两种方法 -
类贫茵陈: [html] view plain copy print? import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Properties;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io....

柳南区19261512668: 怎么使用C语言读取properties配置文件 -
类贫茵陈: 用C语言读取properties配置文件的方法:1、找到配置路径下的properties文件2、按行读取文件内容 具体实现代码如下://定义读入的行数组,1024行 char line[1024];//存放配置项数组setting int setting[N],i = 0;//开始循环读入 while(fgets(fp,line,1024) != NULL) { //读入配置的值给line变量 fscanf(line,"setting%*d = %d",&setting[i++]); }

柳南区19261512668: 如何读properties中的配置信息 -
类贫茵陈: 如何在spring中读取properties配置文件里面的信息<!-- 正文开始 --> 一般来说.我们会将一些配置的信息放在.properties文件中.然后使用${}将配置文件中的信息读取至spring的配置文件.那么我们如何在spring读取properties文件呢.1.首先...

柳南区19261512668: 请教java如何实时读取.properties文件中的配置项内容 -
类贫茵陈: 最常用读取properties文件的方法 InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面.如果在不同的包中,必须使用: InputStream ins = this.getClass().getResourceAsStream(

柳南区19261512668: 怎么读取数据prop中的数据 -
类贫茵陈: 因为properties文件不需要重新编译,项目部署后,修改properties里面的配置信息不需要重新编译和打war包,所以很多配置文件我们可以直接配置在这里,写一个工具类即可解析获取配置信息 (1)基本properties文件datacopy.properties host=...

柳南区19261512668: 如何用ResourceBundle来读取配置文件 -
类贫茵陈: 对于Java基础很好的人来说,这个应该是简单的不能再简单的了.不过估计一些ja va新手不一定会知道(比如我,上次为别人写一个东西,需要从外存读文件来设置对象的值,因为不知道 有ResourceBundle这种东西,就自己用FileReader在那...

柳南区19261512668: 请教c3p0连接池如何读Properties配置文件 -
类贫茵陈: 看javaAPI java.util.Properties Properties prop = new Properties(); prop.load(InputStream inStream); prop.getProperty(String key);

柳南区19261512668: web.xml中如何读取properties配置文件中的值? -
类贫茵陈: 方法如下:<context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:/config/log4j.properties</param-value></context-param> 补充:1. XML文件:XML一般是指可扩展标记语言,标准通用标记语言的子集,是...

柳南区19261512668: jsp里可以读取.properties配置文件吗?可以的话怎么读取?求详解. -
类贫茵陈: 可以.java提供了java.uitl.Properities这个类去调用这类文件的.Properties p = new Properties(); p.load(ZCloudServiceImpl.class.getResourceAsStream("/config/config.properties")); OutputStream fos = new FileOutputStream(A.class.getResource...

柳南区19261512668: log4j.properties配置文件是在什么地方调用读取的呢 -
类贫茵陈: 自动加载配置文件:(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解.log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件.然后加载配置.配置文件放置位置正确,不用在程...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网