`
anyeeye
  • 浏览: 145495 次
  • 来自: ...
社区版块
存档分类
最新评论

Spring占位符PropertyOverrideConfigurer的使用

阅读更多
PropertyOverrideConfigurer,类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。如果起覆盖作用的 Properties文件没有某个bean属性的内容,那么缺省的上下文定义将被使用。
注意:bean 工厂的定义并 不会意识到被覆盖,所以仅仅察看XML定义文件并不能立刻明显地知道覆盖配置是否被使用了。在有多个PorpertyOverrideConfigurer对用一个bean属性定义了不同的值的时候,最后一个将取胜(取决于覆盖的机制)。

Properties文件的一行配置应该是如下的格式:

beanName.property=value,其中beanName是需要覆盖的bean的名字,property是需要覆盖的属性名
实体:
package Bean.propertytwo;public  class Chinese  ...{    private String name;    private String age;    public String getAge() ...{        return age;    }    public void setAge(String age) ...{        this.age = age;    }    public String getName() ...{        return name;    }    public void setName(String name) ...{        this.name = name;    }  }
配置文件:年龄age有注入值30



<?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="propertyConfigure" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
     <property name="locations" value="classpath:Bean/propertytwo/person.properties">
       
     </property>
  </bean>
<bean id="chinese" class="Bean.propertytwo.Chinese">
      <property name="age" value="30"></property>
        <property name="name" value="gaoxiang"></property>
    </bean>
</beans>

属性文件,将age设置为26:

chinese.age=26 

测试代码:



public static void main(String[] args) throws Exception ...{
       
        String path=new Test().getClass().getResource("/").getPath();
        String realpath=path.substring(1, path.length());
        ApplicationContext context=new FileSystemXmlApplicationContext(realpath+"/propertytwo.xml");

        Chinese p=(Chinese)context.getBean("chinese");
        System.out.println(p.getName()+p.getAge());
      
    }

运行结果:

gaoxiang26 
可以看到,age已经被properties中的数值覆盖了,没有使用配置文件中的数值


分享到:
评论

相关推荐

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加灵活和可维护。下面我们将详细探讨`PropertyPlaceholderConfigurer`的工作原理、使用方法以及其在实际开发中的应用。...

    解决Spring国际化文案占位符失效问题的方法

    此外,还有一些其他的解决方法,例如使用Spring的国际化文案占位符 annotation来指定占位符的类型和名称,或者使用自定义的国际化文案占位符机制来替换占位符。 解决Spring国际化文案占位符失效问题需要了解Spring...

    maven 占位符打包

    标题“maven 占位符打包”指的是在Maven的POM.xml文件中使用特定的占位符,以便在不同环境中替换为相应的配置值。这样可以实现代码的复用和环境的隔离,提高开发效率并降低出错的可能性。 描述中的“工程运行环境有...

    属性占位符配置器

    在Spring框架中,**属性占位符配置器**(Property Placeholder Configurator)是一种强大的配置工具,它允许开发者在配置文件中使用占位符来引用外部属性文件中的值,从而实现了配置的动态化和灵活性。这一特性在处理...

    spring-config-jdbc:Spring JDBC 占位符配置器

    Spring JDBC 占位符配置器 这个实现使用 JDBC 数据源和 SQL 语句解析占位符。 大部分测试代码取自。 特拉维斯 CI : 使用示例 构建并安装到本地 Maven 存储库中 ./gradlew publishToMavenLocal 在您的项目中包含...

    .properties文件读取及占位符${...}替换源码解析

    .properties文件读取及占位符${...}替换是Java开发中常用的技术,通过使用.properties文件来存储配置信息,并使用占位符${...}来替换这些配置信息。下面将详细介绍.properties文件读取及占位符${...}替换的原理和...

    Spring及Mybatis整合占位符解析失败问题解决

    然而,在使用Spring和Mybatis进行开发时,可能会遇到一些问题,例如占位符解析失败问题。本文将介绍如何解决这个问题,并详细解释解决方法的原理。 问题描述: 在使用Spring和Mybatis进行开发时,可能会遇到以下...

    基于框架的Web开发-RequestMapping通配符和占位符.doc

    综上所述,`@RequestMapping`的通配符和占位符功能使得我们在Spring MVC中能构建出更加灵活且适应性强的路由规则,从而更好地控制HTTP请求的处理流程。在实际开发中,合理使用这些特性可以提高代码的可维护性和扩展...

    Spring实战之属性占位符配置器用法示例

    本文将详细介绍Spring实战之属性占位符配置器用法示例,结合实例形式分析了spring属性占位符配置器的具体配置及使用技巧。 一、配置文件配置 在Spring框架中,配置文件是应用程序的核心部分。配置文件用于存储应用...

    Spring实战之属性覆盖占位符配置器用法示例

    在Spring框架中,属性覆盖占位符配置器(PropertyOverrideConfigurer)是一个非常实用的工具,它允许我们在不修改Spring配置文件的情况下,通过外部属性文件来动态地覆盖Bean的属性值。这种方式增强了应用的灵活性...

    Spring Boot环境属性占位符解析及类型转换详解

    本文将深入探讨Spring Boot的环境属性占位符解析以及类型转换的过程,帮助你更好地理解和利用这些功能。 首先,让我们来看一下属性占位符解析。在Spring Boot中,属性可以引用其他属性,通过`${}`语法实现,例如`${...

    基于SPRINGBOOT配置文件占位符过程解析

    Spring Boot 配置文件占位符是指在 Spring Boot 项目中使用占位符来配置应用程序的各种参数。在 Spring Boot 中,默认的配置文件是 application.properties,通过在该文件中定义各种参数,可以实现对应用程序的配置...

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性的关键工具,使得开发者可以在配置文件中使用`${property}`形式的占位符,然后在运行时被实际值替换。 在Spring应用中,我们经常会在XML配置文件或者...

    SpringJDBC.rar_jdbc spring_spring jd_spring jdbc_spring使用JDBC进行数

    4. **NamedParameterJdbcTemplate**:对于包含命名参数的SQL语句,这个类提供了更友好的接口,避免了处理占位符顺序的问题。 5. **SqlSessionFactoryBean与SqlSessionTemplate**:对于使用MyBatis作为ORM框架的项目...

    服务器扩展:添加服务器占位符

    Spring允许我们在配置文件中使用 `${...}` 来引用占位符,然后通过PropertyPlaceholderConfigurer 或者 @Value 注解来解析这些占位符,并在运行时替换为实际值。 例如,如果你有一个名为 `application.properties` ...

    Spring_SpEl表达式使用用例

    Spring允许在配置中使用SpEL表达式作为占位符,如`@Value("#{systemProperties['java.version']}")`,这将注入Java版本号到bean的属性中。 7. **T()和P()函数** `T()`函数用于引入类型,如`T(java.util.Date)`...

    easyPoi模板导出Excel报表(xls 和xlsx 都支持)

    如果有,就使用设置的TemplateContext替换掉占位符,填充上实际的数据。 5. **导出Excel**:最后,将处理后的内存工作簿写入到新的Excel文件中,完成导出过程。EasyPoi支持导出为xls和xlsx两种格式,只需要调整相关...

    关于spring系统中多系统的配置

    通过这种方式,我们可以轻松地在Spring配置文件中使用占位符语法`${property.name}`来引用`dbQuery.properties`中的属性。 ### 配置多个Properties文件 当需要引用多个属性文件时,可以使用`locations`属性代替`...

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...

    Spring之SimpleJdbcTemplate的使用

    4. **参数绑定**:使用占位符?进行参数绑定,避免SQL注入风险。例如,`update("INSERT INTO table (name, age) VALUES (?, ?)", "John", 25)`。 5. **事务管理**:尽管SimpleJdbcTemplate不直接处理事务,但可以...

Global site tag (gtag.js) - Google Analytics