spring读取prperties配置文件(1)
博客地址http://www.cnblogs.com/shizhongtao/p/3438431.html
属性文件命名是*.properties,在java中,用类java.util.Properties来处理,例如我创建文件my.properties,然后加入属性
filename=你好
path=D\:\\app
那么在java中就可以这样读取属性
InputStream in=App.class.getResourceAsStream ("/my.properties");
Properties pro=new Properties();
try
{
pro.load(in);
System.out.println(pro.getProperty("filename"));
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(in!=null){
try
{
in.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上面代码中只是读取了,其中的filename属性,不过会出现一个问题,就是中文乱码的问题,这是因为inputstream是按照字节流读取,每次读一个字节,而每个汉字是两个字节;所以会出现乱码,我们可以这样修改,(当然你也可以用fileReader这个类,因为FileREder用的是系统默认字符编码,只要你默认编码支持中文就可以了。)
new InputStreamReader(in,"utf-8");
pro.load(new InputStreamReader(in,"utf-8"));
System.out.println(pro.getProperty("filename"));
在spring中,利用配置文件读取相应的配置,方便项目一些变量的修改,例如数据库配置、文件保存位置、类中不固定的一些变量值等等。
通常我们会建一个名字为db.propreties的属性文件。里面内容如下:
db.connection.driver_class=oracle.jdbc.driver.OracleDriver
db.connection.url=jdbc\:oracle\:thin\:@localhost\:\:orcl
db.connection.username=test
db.connection.password=test
然后在spring中用PropertyPlaceholderConfigurer类来读取属性,这个类读取属性文件非常灵活,你可以配置编码 <property name="fileEncoding">来配置编码。具体使用可以参看官方的文档http://docs.spring.io/spring/docs/3.2.5.RELEASE/spring-framework-reference/htmlsingle/#beans-factory-placeholderconfigurer
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/db.properties</value>
</list>
</property>
</bean>
在spring2.5以后的版本中,读取属性文件也可以这样配置,与上面的效果一样。
<context:property-placeholder location="classpath:db.properties"/>
这样在我们配置数据库的dataSource时候就可以如下配置:
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>${db.connection.driver_class}</value>
</property>
<property name="url">
<value>${db.connection.url}</value>
</property>
<property name="username">
<value>${db.connection.username}</value>
</property>
<property name="password">
<value>${db.connection.password}</value>
</property>
</bean>
引申:如果想要PropertyPlaceholderConfigurer用anotation的方式,去注入属性,我们该如何写呢?
spring读取prperties配置文件(1)的更多相关文章
- spring读取prperties配置文件(2)
接上篇,spring读取prperties配置文件(1),这一篇主要讲述spring如何用annotation的方式去读取自定义的配置文件. 这里我先定义好属性文件"user.propert ...
- Spring读取xml配置文件的原理与实现
本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 ...
- spring读取xml配置文件(二)
一.当spring解析完配置文件名的占位符后,就开始refresh容器 @Override public void refresh() throws BeansException, IllegalSt ...
- spring 读取yaml配置文件
从Spring框架4.1.0增加了对YAML的支持,Spring框架4.1.0 maven POM具有Snakeyaml依赖性 . 您可以在Spring Boot应用中使用两种方式加载YAML: 1 ...
- Spring 读取XML配置文件的两种方式
import org.springframework.context.ApplicationContext; import org.springframework.context.support.Cl ...
- Java中spring读取配置文件的几种方法
Spring读取配置XML文件分三步: 一.新建一个Java Bean: package springdemo; public class HelloBean { private String hel ...
- Spring读取配置文件的几种方式
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...
- java web路径和spring读取配置文件
此篇博客缘起:部署java web系统到阿里云服务器(ubuntu14.04)的时候,有以下两个问题 找不到自定义的property配置文件 上传图片的时候找不到路径 开发的时候是在windows上的 ...
- Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置
通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值: @PropertySource注解主要是让Spring的Environment接口读取属性配置文件用的,标识在@ ...
随机推荐
- mysql的top n查询
我们知道,在ms sql server中或access中,若要查询前10条记录,使用top 10即可,但在mysql中不支持这个写法,它用limit 10. 我们可以利用MySQL中SELECT支持 ...
- ural 1993 This cheeseburger you don't need
顺次存到{} [] () 遇到逗号就处理下,最后处理逗号之后的 #include <iostream> #include <cstring> #include <stri ...
- [Ramda] Basic Curry with Ramda
var _ = R; /***************************************** C U R R Y I N G E X A M P L E **************** ...
- Android开发 侧边滑动菜单栏SlidingMenu结合Fragment
SlidingMenu是一个开源项目, https://github.com/jfeinstein10/SlidingMenu .功能是创建侧边滑动菜单栏,效果类似人人Android客户端,可点击按钮 ...
- Online DDL与pt-online-schema-change
http://seanlook.com/2016/05/24/mysql-online-ddl-concept/ http://seanlook.com/2016/05/27/mysql-pt-onl ...
- <label>标签for属性的妙用
在用户注册的时候,常常用户点击文字就需要将光标聚焦到对应的表单上面,这个是怎么实现的呢?就是下面我要介绍的<label>标签的for属性 定义:for 属性规定 label 与哪个表单元素 ...
- c语言海量数据处理
教你如何迅速秒杀掉:99%的海量数据处理面试题 http://wenku.baidu.com/view/4546d06ca45177232f60a276.html c语言如何对海量数据进行处理 PDF ...
- Spring 中JCA CCI分析--转载
转载地址:http://blog.csdn.net/a154832918/article/details/6790612 J2EE提供JCA(Java Connector Architecture)规 ...
- 如何用eclispe远程调试tomcat--转载
原文地址:http://jingyan.baidu.com/article/0320e2c1f4ef6b1b87507b06.html tomcat是一种非常常见的java web应用服务器,有时候服 ...
- 解决Kscope中文乱码问题
当安装Kscope完成后,然后配置以下三个路径:Cscope path:/usr/bin/cscopeCtags path:/usr/bin/ctagsDot path:/usr/bin/dot 对于 ...