我的程序终于又进展了,基本功能已经实现了,开始开发WEB界面了。这是却出现了一个问题。原先的Encoder需要指定一个配置文件目录,然后将这个目录下的所有文件读入。
<bean id="encoder" class="test.Encoder" init-method="init">
<property name="resourceDirectory"><value>WEB-INF/lib/wbxml</value></property>
</bean>
当在命令行下调试时他工作的很好,但是当在tomcat下运行时却报告说找不到该目录。这是当然,因为tomcat下相对目录不在正确。通常情况下的解决办法是用ServletContext.getRealPath得到绝对路径。这是这样Encoder却额外的需要增加对ServletContext的依赖,这是我所不愿意看到的。
幸好发现了PropertyPlaceholderConfigurer,最后的解决方案是
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
<bean id="encoder" class="test.Encoder" init-method="init">
<property name="resourceDirectory"><value>${webapp.root}/WEB-INF/lib/wbxml</value></property>
</bean>
原来PropertyPlaceholderConfigurer可以将${...}替换为指定的properties文件或system properties中的值,而spring在Log4jConfigListener或是WebAppRootListener会指定一个system property表示web root的值,default是webapp.root。
不幸的是目前spring1.0.2似乎有一个BUG,PropertyPlaceholderConfigurer不能正确地工作在Inner Bean中,我已提交了这个问题,希望很快能解决。
分享到:
相关推荐
Spring 中 PropertyPlaceholderConfigurer 的使用 PropertyPlaceholderConfigurer 是 Spring 框架中的一个重要组件,用于加载和管理 Properties 文件。它能够将 Properties 文件中的键值对注入到 Spring 的 bean 中...
在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...
Spring通过`@Value`注解和`PropertyPlaceholderConfigurer`(在Spring 3.1以后被`@ConfigurationProperties`替代)等方式来实现属性注入。下面,我们将深入探讨这一概念及其应用。 首先,让我们了解什么是属性文件...
在Spring框架中,属性占位符`PropertyPlaceholderConfigurer`是一个重要的工具,用于处理配置文件中的属性值引用。它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加...
在Spring框架中,我们通常使用`@Value`注解或`PropertyPlaceholderConfigurer`来注入配置属性。然而,当应用接入Apollo后,`apollo-springconfig-support`提供了一个Java代理机制,使得应用可以直接从Apollo获取配置...
PropertyPlaceholderConfigurer示例 3.7.2.2. PropertyOverrideConfigurer示例 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的...
根据提供的文档信息,我们可以深入探讨Spring框架的核心概念与特性,特别是文档中提到的关于Beans、BeanFactory、ApplicationContext等部分。 ### 1. 引言 #### 1.1 概览 Spring框架是一个轻量级的Java应用开发...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
- **PropertyPlaceholderConfigurer**:用于处理外部属性文件的配置问题。 综上所述,“spring-reference.pdf”文档详细介绍了Spring框架的基础知识和核心概念,并提供了丰富的示例和最佳实践,对于希望深入了解并...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
- 在"beans"包中,`org.springframework.beans.factory.config`包下的`PropertyPlaceholderConfigurer`类用于处理占位符替换,实现环境变量或属性文件的值注入到Bean的属性中。 3. **Bean的生命周期管理** - ...
- **PropertyPlaceholderConfigurer**:用于替换配置文件中的占位符。 - **PropertyOverrideConfigurer**:允许覆盖已存在的属性值。 #### 3.8 注册额外的自定义PropertyEditors #### 3.9 使用alias元素为现有Bean...
Spring如何使用PropertyPlaceholderConfigurer读取文件 Spring框架中,PropertyPlaceholderConfigurer是一个非常重要的组件,它可以帮助我们读取配置文件,实现系统的配置信息统一管理。在大型项目中,我们往往会将...
`org.springframework.beans.factory.config.PropertyPlaceholderConfigurer` 是Spring框架中的一个重要组件,主要负责处理配置文件中的占位符替换。这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性...
#Spring 属性注释扩展的 PropertyPlaceHolderConfigurer 使用注解将配置属性注入到 Spring 组件中。 注意:Spring 3 现在支持使用 @Value 注释的容器的。 该项目仅用于 Spring 2.5.x 支持。 ##入门Spring房产注解...
此外,PropertyPlaceholderConfigurer和Environment抽象类是处理属性文件和环境变量的重要组件,它们帮助我们读取和替换配置文件中的占位符,使得配置更加灵活。 再来看AOP相关接口。AOP是Spring中一个强大的特性,...