当前位置:首页 > 开发 > 编程语言 > Spring > 正文

我的spring学习笔记15-容器扩展点之PropertyOverrideConfigurer

发表于: 2012-04-22   作者:aijuans   来源:转载   浏览:
摘要: PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。也就是说如果properties文件中没有某个bean属性的内容,那么将使用上下文(配置的xml文件)中相应定义的值。如果properties文件中有bean属性的内容,那么就用properties文件中的值来代替上下
PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。也就是说如果properties文件中没有某个bean属性的内容,那么将使用上下文(配置的xml文件)中相应定义的值。如果properties文件中有bean属性的内容,那么就用properties文件中的值来代替上下文中的bean的属性值。
首先看一下配置文件,代码如下:
<bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
      <property name="location" value="propertyOverrideHolder.properties"/>
    </bean> 
    <bean id ="student" class="co.jp.beanFactoryPost.Student">
     <property name="name">
      <value>Xiaohailin</value>
     </property>
     <property name="age">
      <value>${age}</value>
     </property>
     <property name="birth">
      <value>${birth}</value>
     </property>
    </bean>

其中student类,在前面已经给出了代码,这里不再叙述。
接着是,properties文件的代码:
student.age=27
student.birth=19820123
测试用的主类的代码如下:
public class PropertyOverrideConfigurerDemo {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("propertyOverrideHolder.xml");
        Student student = (Student) ctx.getBean("student");
        System.out.println(student.getAge());
        System.out.println(student.getBirth());
        System.out.println(student.getName()); 
    }
}

由于配置文件中已经有name属性的值,而properties文件中没有,所以执行后的结果是:
27
19820123
Xiaohailin
如果把properties文件改一下:修改之后的代码如下:
student.age=27
student.birth=19820123
student.name=jiangmin
那么测试主类执行后的结果如下:
student.age=27
student.birth=19820123
student.name=jiangmin

我的spring学习笔记15-容器扩展点之PropertyOverrideConfigurer

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
实例化Spring容器示例 利用Spring容器创建JavaBean对象 如何控制Bean实例化 利用Spring实现bean属性
前面说到了spring使用配置文件来描述bean与bean之间的关系,并且由IOC容器来实例化这些bean,刚才的程
1.1. 概览 Spring包含许多功能和特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
一、Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该be
1. IoC容器 负责Bean的实例化、注入、生命周期方法管理,包括以下类型接口,前者更强大更常用 Appli
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号