PropertyPlaceholderConfigurer作为一个bean factory post-processor实现,可以用来将BeanFactory定义中的属性值放置到另一个单独的Java Properties格式的文件中。这使得用户不用对BeanFactory的主XML定义文件进行复杂和危险的修改,就可以定制一些基本的属性(比如说数据库的urls,用户名和密码)。
考虑一个BeanFactory定义的片断,里面用占位符定义了DataSource:
在下面这个例子中,定义了一个datasource,并且我们会在一个外部Porperties文件中配置一些相关属性。 在运行时,我们为BeanFactory提供一个PropertyPlaceholderConfigurer,它将用Properties文件中的值替换掉这个datasource的属性值:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
真正的值来自于另一个Properties格式的文件:
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://production:9002
jdbc.username=sa
jdbc.password=root
我们的Bean配置如下:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/jdbc.properties</value>
</property>
<!--
使用locations属性定义多个配置文件
<property name="locations">
<list>
<value>classpath:config/maxid.properties</value>
<value>classpath:config/jdoserver.properties</value>
</list>
</property>
-->
</bean>
引用的时候,是在web.xml中实现的配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
监听:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如上所述,我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。
利用这种技术,我们可以从applicationContext.xml中移除所有特定于主机的配置属性。通过这种方式,我们可以自由地为该文件添加新的Bean,而不必担心特定于主机属性的同步性。这样可以简化生产部署和维护。
分享到:
相关推荐
这里,`PropertyPlaceholderConfigurer` 会查找指定位置(例如 `config.properties`)的属性文件,并将其中的键值对与XML或Java配置中的占位符进行匹配替换。这使得我们的配置更加灵活,可以将一些敏感信息(如...
这里,`propertyConfigurerForAnalysis`是`PropertyPlaceholderConfigurer`的实例bean,其作用是将`dbQuery.properties`中的键值对作为环境变量注入到Spring容器中。`classpath:`前缀表示该文件位于类路径下,即项目...
使用 PropertyPlaceholderConfigurer 需要首先在 Spring 配置文件中定义一个 bean,例如: ```xml <bean id="propertyConfigurerForAnalysis" class="org.springframework.beans.factory.config....
在 Service 中,如果配置的路径是 classpath:config.properties,可能会出现多个文件的情况。这时,需要将路径改为 classpath*:config.properties,以便加载所有的配置文件。 例如: ```xml <context:property-...
接下来,我们将在Spring的配置文件(如`applicationContext.xml`)中声明一个`PropertyPlaceholderConfigurer` bean,它负责加载并解析Properties文件。配置如下: ```xml class="org.springframework.beans....
Spring提供了`PropertyPlaceholderConfigurer`类,可以方便地从.properties文件中读取属性。首先,在Spring的配置文件(如`applicationContext.xml`)中定义一个bean,然后指定properties文件的位置: ```xml ...
4. `<context:property-placeholder>`:这是一个特殊的bean,用于加载外部属性文件(如`jdbc.properties`),使得在配置中可以使用`${}`引用这些属性,避免硬编码。 5. `<dataSource>`:这里配置了数据源,Druid是...
在Spring项目中,`application.xml`配置文件是核心配置组件,它包含了应用的bean定义、数据源、事务管理等重要信息。为了保护敏感信息,如数据库连接字符串、API密钥等,我们需要对这些配置进行加密。本文将详细介绍...
在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...
在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...
- 在这个方法中,首先通过调用`setGollfPropFiles()`方法读取`deploy.properties`文件中的`DATE_SOURCE`属性值。 - 根据属性值的不同,决定加载`dbconn.properties`还是`dbconn2.properties`文件。 - 将选定的...
Spring如何使用...使用PropertyPlaceholderConfigurer可以将配置文件的路径放在java虚拟机JVM的自定义变量中,例如:-Ddev.config=/dev.properties,这样可以实现配置文件的路径根据环境的变化而变化。 ...
在Spring MVC框架中,配置文件是整个应用的核心组成部分,它定义了bean的创建、依赖关系以及各种服务的配置。这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的...
当Spring容器启动时,`PropertyPlaceholderConfigurer`会自动找到`config.properties`文件,读取其中的`db.url`属性,并替换掉`${db.url}`,从而完成数据源的配置。 除了基本的属性文件加载,`...
#### Spring中的PropertyPlaceholderConfigurer类 在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常...
在Spring配置文件中,我们需要声明一个`PropertyPlaceholderConfigurer`的实例,并指定属性文件的位置。例如: ```xml <bean id="propertyConfigurer" class="org.springframework.beans.factory.config....
在Spring框架中,读取和使用...在Spring的配置文件中,首先需要定义一个`PropertyPlaceholderConfigurer` bean,这是Spring用来解析Properties文件并将其值注入到其他bean中的关键组件。如示例所示: ```xml ...
然后在Spring的配置XML文件中声明`PropertyPlaceholderConfigurer`,指定文件位置和属性占位符的前缀: ```xml <bean id="propertyConfigurer" class="org.springframework.beans.factory.config....
这里通过 `<bean>` 定义了一个 `PropertyPlaceholderConfigurer` 类型的 Bean,用于读取 `jdbc.properties` 文件中的配置信息,并在后续配置文件中通过 `${...}` 形式进行引用。 ##### 3. `applicationContext-...