`

用spring读取配置文件properties

阅读更多
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。
   用spring读取配置文件,最典型的就是关于数据库的连接,下面就是一个例子:
   文件jdbc.properties:
-------------------------------------------------------------------------------------
       driverClassName com.mysql.jdbc.Driver
       url jdbc:mysql://localhost:3306/test
       username root
       password 1234
------------------------------------------------------------------------------------
引入spring的相关jar包,在applicationContext.xml中配置:
-------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
           <value>src/jdbc.properties</value>
</property>
</bean>

<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
    <value>${driverClassName}</value>
</property>
<property name="url">
    <value>${url}</value>
</property>
<property name="username">
   <value>${username}</value>
</property>
<property name="password">
    <value>${password}</value>
</property>
</bean>

<bean id="dao" class="com.zh.model.DataDAO">
   <property name="datasource">
     <ref local="datasource"/>
   </property>
</bean>

</beans>
-----------------------------------------------------------------------------------------
DataDAO.java

package com.zh.model;

import javax.sql.DataSource;

public class DataDAO {
private DataSource datasource;

public DataSource getDatasource() {
return datasource;
}

public void setDatasource(DataSource datasource) {
this.datasource = datasource;
}

}
------------------------------------------------------------------------------------
测试连接是否成功,test.java
package com.zh.logic;

import java.sql.Connection;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.zh.model.DataDAO;

public class test {
public static void main(String [] args){
   try{
   String[] path = {"src/applicationContext.xml"};
   ApplicationContext ctx = new FileSystemXmlApplicationContext(path);

   DataDAO dao = (DataDAO)ctx.getBean("dao");
   Connection con = dao.getDatasource().getConnection();
   System.out.println(con.isClosed());
   //System.out.print(dao.getName());
   }catch(Exception ex){
   ex.printStackTrace();
     }
   }
}
-------------------------------------------------------------------------------------
2.用java.util.Properties这个类来读取
比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:
ip=192.168.0.1
port=8080
--------------------------------------------------------------------------------------
则,我们可以用如下程序来获得服务器配置信息:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties");
   Properties p = new Properties();
   try{
       p.load(inputStream);
   } catch (IOException e1){
    e1.printStackTrace();
   }
System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));
--------------------------------------------------------------------------------------
上面介绍了读取properties的内容,现实中我们还有可能要修改文件的内容,下面就看下怎么修改properties的内容,文件还是上面那个:
package com.zh.logic;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Properties;

public class TestRead {
   
public void read(){
   try {
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("config/host.properties");
    Properties p = new Properties();
    p.load(in);
    //p.list(System.out);
     
    System.out.println(p.getProperty("ip")+","+p.getProperty("username")+","+p.getProperty("pwd"));
   } catch (Exception e) {
    e.printStackTrace();
   }
}

public void update(String path){
    try{
     Properties p = new Properties();
     FileInputStream in = new FileInputStream(path);
     p.load(in);
     FileOutputStream out = new FileOutputStream(path);
   
     p.setProperty("ip","1234567");
     p.store(out,"ip update");
     //p.save(out,"ip updated");
    }catch(Exception ex){
     ex.printStackTrace();
    }
}
public static void main(String[] args){
   TestRead td = new TestRead();
   td.read();
   td.update("config/host.properties");
   td.read();
}
}
可以看见修改之前的和修改之后的内容有改变;在上面有点要注意的:
        FileInputStream in = new FileInputStream(path);
        p.load(in);
        FileOutputStream out = new FileOutputStream(path);
就是p.load(in);要写在FileOutputStream out = new FileOutputStream(path);之前,不然的话,修改后的文件内容就成了ip=1234567,而port=8080这句被覆盖了;什么愿意大家自己想想吧;

上面介绍了两中读取properties文件的方法,希望对大家有帮助........
分享到:
评论

相关推荐

    spring读取配置文件

    本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...

    spring读取properties

    ### Spring读取Properties文件的核心知识点 #### 1. **引入PropertyPlaceholderConfigurer** 在Spring的配置文件中,首先需要定义一个`PropertyPlaceholderConfigurer` bean,这是Spring用来解析Properties文件并...

    spring读取jar中的配置文件

    当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...

    Spring Boot多模块配置文件读取

    - 使用`spring.config.location`属性可以指定额外的配置文件位置,例如:`--spring.config.location=classpath:/module1.properties,classpath:/module2.properties`。 3. **命名规则与优先级** - Spring Boot...

    spring mvc 读取配置文件

    这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的应用。 首先,Spring MVC中的配置文件通常是指XML配置文件,如`applicationContext.xml`或`servlet-context....

    读取properties文件返回map

    在Java编程中,`properties`文件是一种常用的配置文件格式,用于存储应用的配置参数或设置。这些文件通常以键值对的形式存在,如`key=value`。本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`...

    用enum实现单例模式的方法来读取配置文件

    总结起来,用枚举实现单例模式读取配置文件的好处包括: 1. 线程安全:枚举在JVM启动时初始化,保证了多线程环境下的安全性。 2. 防止反序列化攻击:枚举不能被实例化,避免了通过反序列化创建额外实例的可能性。 3....

    java读取配置文件

    如果你的项目使用了Spring框架,可以利用Spring的`Resource`接口来读取配置文件,它支持从类路径、文件系统、URL等多种来源加载资源: ```java Resource resource = new ClassPathResource("config.properties");...

    java读取properties配置文件

    在Java编程中,`properties`文件是一种常用的存储配置信息的方式,它以键值对的形式...在实际项目中,还可以结合Spring框架或者其他配置管理工具,如Apache Commons Configuration,进一步简化配置文件的管理和使用。

    java读取.properties配置文件的几种方法

    如果你的项目使用了Spring框架,可以利用其强大的IoC容器来读取配置文件。 ```java import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org....

    Spring3.0 配置文件中加载Properties文件的小例子

    本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...

    SpringBoot-2.7.6读取配置文件的方式

    在Spring Boot 2.7.6中,配置文件的管理是整个框架的核心功能之一,它使得开发者能够方便地...以上就是Spring Boot 2.7.6读取配置文件的基本方式及其相关知识,希望对你在理解和使用Spring Boot配置管理上有所帮助。

    封装读取配置文件

    在读取配置文件的方法中,使用了`synchronized`关键字,确保多线程环境下对`HashMap`的操作是线程安全的。这是因为配置文件的读取可能会在多线程环境中发生,如果不加控制,可能会导致数据不一致或者读取失败。 ###...

    spring-demo09-读取properties配置文件内容.zip

    在实际开发中,根据项目需求和配置的复杂性,选择合适的方式来读取配置文件。对于大型项目,通常推荐使用`@ConfigurationProperties`,因为它提供了更强大的类型安全性和代码提示。 总的来说,Spring提供了一套完整...

    读取配置文件工具类.rar

    本压缩包包含两个工具类,分别用于读取`.yml`和`.properties`格式的配置文件,这两种格式都是Java开发中常见的配置文件类型。 首先,我们来看`.properties`配置文件。这种格式的文件历史较为悠久,它的语法简单,每...

    Spring 读取properties文件key+value方式.rar

    Spring框架提供了强大的属性配置管理,能够帮助开发者轻松地读取和使用properties文件中的key-value对。本教程将深入探讨如何在Spring中以不同的方式读取properties文件,以便更好地理解和应用这些配置。 首先,...

    读取配置文件代码

    总结起来,Java提供了多种方式来读取配置文件,包括使用`Properties`类处理.properties文件以及DOM、SAX或JAXB解析器处理.xml文件。了解这些方法可以帮助开发者更好地管理应用程序的配置信息,提高代码的可维护性和...

    SpringBoot第 5 讲:SpringBoot+properties配置文件读取

    在本讲中,我们将深入探讨如何在SpringBoot项目中使用`properties`配置文件进行数据读取。`properties`文件是Java开发中常见的配置文件格式,它允许开发者将应用程序的配置参数存储在一个独立的文本文件中,便于管理...

    Spring Boot读取配置文件常用方式

    以下将详细介绍Spring Boot读取配置文件的常用方法。 1. **属性文件** Spring Boot默认支持两种主要的属性文件格式:`application.properties`和`application.yml`。前者使用键值对形式,后者使用YAML(YAML Ain't...

Global site tag (gtag.js) - Google Analytics