import java.util.HashSet;
import java.util.Properties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
/**这里不用<context:property-placeholder/>
* 重写了PropertyPlaceholderConfigurer 类,在spring配置文件加载
* @author lyq
*
*/
public class MyPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
@SuppressWarnings("deprecation")
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,
Properties props) throws BeansException {
super.processProperties(beanFactoryToProcess, props);
// resolvedProps = new HashMap<String, String>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
ConfigContainer.props.put(keyStr, parseStringValue(props.getProperty(keyStr), props,new HashSet()));
}
}
}
<bean id="configBean"
class="com.gainthink.prop.MyPropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath*:*.properties</value>
</property>
</bean>
import java.util.HashMap;
import java.util.Map;
public class ConfigContainer {
static Map<String,String> props = new HashMap<String, String>();
public static String getProperty(String key){
return props.get(key);
}
}
最后执行程序
ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
System.out.println(ConfigContainer.getProperty("interval.time"));
分享到:
相关推荐
在IT行业中,动态加载属性文件和Spring Quartz的整合应用是一个重要的技术话题,特别是在构建大型、分布式和可扩展的系统时。下面将详细讲解这两个概念及其相互间的应用。 首先,我们来了解一下动态加载属性文件。...
2. `@PropertySource`: 在类上使用这个注解可以指定一个或多个属性文件,Spring会自动加载并解析其中的属性。如果属性文件位于类路径下,可以直接写类路径路径,如`@PropertySource("classpath:config.properties")`...
本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...
Spring提供`PropertyPlaceholderConfigurer`或`@PropertySource`注解来加载属性文件。`PropertyPlaceholderConfigurer`是一个Bean定义后处理器,它会替换Bean定义中的占位符(如`${key}`)为属性文件中的值。而`@...
### Spring框架中加载多个配置文件的方法 在Spring框架中,加载多个配置文件是常见的需求之一。这不仅可以帮助我们更好地组织代码结构,还可以提高程序的可维护性和可扩展性。本文将详细介绍Spring框架中如何加载多...
Spring支持根据激活的profile加载特定的属性文件,如`application-{profile}.properties`。这使得在不同环境中(例如开发、测试、生产)可以使用不同的配置。 6. **Cloud Config Server** 在分布式系统中,Spring...
Spring的`<beans>`和`<bean>`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理应用程序中的组件。通过深入了解这些元素和属性,开发人员可以更有效地利用Spring框架的功能,构建更加健壮和可...
本文将详细介绍如何让Spring自动加载自定义的`.properties`配置文件,并在代码中获取这些配置信息。 首先,我们需要创建一个`.properties`文件。这个文件通常命名为`application.properties`或根据项目需求自定义,...
在Java Spring框架中,使用外部属性文件是一种常见的最佳实践,它允许我们将应用程序的配置信息与源代码分离,便于管理、维护和环境间的切换。本文将深入探讨如何在Spring应用中利用外部属性文件,以及其背后的原理...
在Spring Boot应用中,`application.yml`文件是一个关键的组件,它用于定义应用程序的配置属性。这个文件通常位于`src/main/resources`目录下,并且被Spring Boot自动加载以提供配置信息。本文将深入探讨如何在代码...
在这段测试代码中,首先通过`ClassPathXmlApplicationContext`加载了`applicationContext.xml`配置文件,并从中获取了`son2` Bean,然后验证了其`age`属性的值是否为11。 #### 六、总结 通过上述示例可以看出,`...
在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...
在处理JAR内的配置文件时,通常会使用`@PropertySource`注解来指示Spring从特定资源加载属性。例如: ```java @Configuration @PropertySource("classpath:/config/application.properties") public class ...
在Spring框架中,可以使用`Resource`接口和`ApplicationContext`来加载属性文件,这在多环境配置或类路径资源加载时非常有用: ```java Resource resource = new ClassPathResource("config.properties"); ...
Spring允许我们从外部属性文件中加载配置,通常使用`@Value`或`@ConfigurationProperties`注解。例如,有一个名为`application.properties`的文件,其中包含文件存储路径: ```properties file.upload.path=/...
除了基本的属性文件加载,`PropertyPlaceholderConfigurer`还支持其他高级特性,例如: 1. **默认值**:当某个占位符对应的属性值不存在时,可以设置一个默认值。例如: ```xml ...
这个注解可以用来指示Spring从指定的资源加载属性,例如,你可以加载类路径下的`test.properties`或文件系统中的`/etc/test.properties`。当多个`PropertySource`存在时,后面的配置会覆盖前面的,因此可以实现配置...
Spring的`ApplicationContext`是Spring容器的实现,它加载配置文件并管理bean的生命周期。开发者可以通过`ApplicationContext`获取bean实例,进行依赖注入和其他操作。例如: ```java ApplicationContext context = ...
总结来说,Spring通过`PropertyPlaceholderConfigurer`加载属性文件,并提供了两种使用方式:直接在bean配置中引用属性值,或通过注解在Java代码中注入属性。这种方式增强了代码的可维护性和灵活性,使得配置信息...