根据Spring配置文件的PropertiesFactoryBean和 PropertyPlaceholderConfigurer可以选择不同的加载方式,我是使用System.setProperty(key, value),代码中可以直接用System.getProperty(key)取value的值,不要乱用System.setProperties(props)
一、PropertyPlaceholderConfigurer
PropertyPlaceholderConfigurer是解决 properties 文件占位符问题,实现 PropertiesLoaderSupport 类
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <value>classpath:redis.properties</value> </list> </property> <!-- 忽略不可解析的 --> <property name="ignoreUnresolvablePlaceholders" value="true" /> </bean>
package com.phil.common.prop; import java.util.Map.Entry; import java.util.Properties; import org.apache.log4j.Logger; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; /** * 加载Properties文件 * @author phil * @date 2017年8月13日 * */ @Component public class InitializingProperties implements InitializingBean { private static final Logger logger = Logger.getLogger(InitializingProperties.class); /* * (non-Javadoc) * * @see * org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() throws Exception { Properties props = new Properties(); props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test1properties")); props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test2.properties")); for (Entry<Object, Object> e : props.entrySet()) { System.setProperty(e.getKey().toString(), e.getValue().toString()); logger.info(e.getKey().toString() + "---" + e.getValue().toString()); } } }
二、PropertiesFactoryBean
PropertiesFactoryBean 是PropertiesLoaderSupport 直接的实现类
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location"> <value>classpath:portal_dev.properties</value> </property> </bean>
package com.phil.common.prop; import java.util.Map.Entry; import java.util.Properties; import org.apache.log4j.Logger; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 加载Properties文件 * @author phil * @date 2017年8月13日 * */ @Component public class InitializingProperties implements InitializingBean { private static final Logger logger = Logger.getLogger(InitializingProperties.class); @Autowired private Properties propertyConfigurer; /* * (non-Javadoc) * * @see * org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() throws Exception { for (Entry<Object, Object> e : propertyConfigurer.entrySet()) { System.setProperty(e.getKey().toString(), e.getValue().toString()); logger.info(e.getKey().toString() + "---" + e.getValue().toString()); } } }
相关推荐
在Java编程中,`properties`文件是一种常用的配置文件格式,用于存储应用的配置参数或设置。这些文件通常以键值对的形式存在,如`key=value`。本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`...
本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`properties`文件的格式。一个标准的`.properties`文件通常包含多个行,每行由一个键和一个值组成,它们之间用等号(`=`)或冒号(`:`)...
在Java代码中,我们首先创建一个`Properties`对象,它是读取Properties文件的核心工具。 ```java Properties prop = new Properties(); ``` 2. **加载Properties文件**: 使用`InputStream`来读取Properties...
在Java编程中,读取`.properties`配置文件是常见的任务,这些文件通常用于存储应用程序的配置参数、系统设置等信息。下面将详细介绍几种在Java中读取`.properties`配置文件的方法。 1. 使用`java.util.Properties`...
Spring 无法读取 properties ...Spring 无法读取 properties 文件数据问题可能是由于配置文件路径不正确、配置文件不存在或多个配置文件导致的。通过正确配置配置文件的路径和加载所有的配置文件,可以解决这些问题。
在Java编程中,`properties`文件是一种常用的配置文件格式,用于存储程序的配置信息,如数据库连接字符串、系统参数等。这些数据以键值对的形式存在,键与值之间用等号(=)或冒号(:)分隔。本篇文章将详细探讨如何...
利用java的反射解析Properties文件转成对象 /** * 解析properties文件为对象 * @param * @param propPath * @param cls * @return * @throws InstantiationException * @throws ...
在Java编程中,读取`.properties`文件是一个常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统参数等。`.properties`文件是一种基于键值对的文本格式,易于理解和编辑。在这个场景中,我们将探讨...
最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io.FileInputStream`可以用来打开文件,然后`java.util.Properties`类可以加载并解析配置文件。以下是一个简单的示例: ...
本教程将深入探讨如何在Spring中以不同的方式读取properties文件,以便更好地理解和应用这些配置。 首先,我们需要一个`application.properties`或`application.yml`文件,其中包含键值对。例如: ```properties ...
"SSM 读取properties文件"这个话题聚焦于如何在项目中有效地读取和使用这些配置文件。properties文件通常用于存储应用程序的配置参数,如数据库连接信息、服务器端口、邮件服务设置等,使得这些关键信息能够独立于...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
Spring读取Properties文件实例解析 Spring框架中,读取Properties文件是一个非常重要的步骤,Properties文件中存储着应用程序的配置信息,如数据库连接信息、Server配置信息等。在Spring应用程序中,我们可以使用@...
这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的应用。 首先,Spring MVC中的配置文件通常是指XML配置文件,如`applicationContext.xml`或`servlet-context....
在Java编程中,读取`.properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接参数。本文将详细介绍如何使用Java读取`.properties`文件并利用这些信息连接到数据库。 首先,我们需要理解`....
当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...
在Java编程中,读取`properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统设置等。本篇文章将详细介绍如何在Java中不依赖第三方库来读取`.properties`文件。 首先,`properties`...
在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值可以是任意字符串。然而,当这些文件中包含中文字符时,如果不正确地处理编码,可能会出现中文乱码的问题。本文将深入探讨...
在Spring Boot应用中,多模块配置文件的读取是一个重要的实践,它有助于提高代码的可维护性和模块化。本文将详细探讨如何在Spring Boot的多模块项目中管理和使用不同的配置文件,以实现低耦合的设计。 首先,了解...