`
aijuans
  • 浏览: 1568069 次
社区版块
存档分类
最新评论

我的spring学习笔记13-容器扩展点之PropertyPlaceholderConfigurer

阅读更多

PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。关于BeanFactoryPostProcessor和BeanPostProcessor类似。我会在其他地方介绍。
PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java Properties文件中去。这样的话,我只需要对properties文件进行修改,而不用对xml配置文件进行修改。
作用是什么呢?
有一些属性值不需要经常变更,但是有一些属性值可能随时改变,把经常会改动的属性值放在另一个文件中的话,程序使用起来也更方便。
下面将通过一个例子来理解PropertyPlaceholderConfigurer。
首先是配置文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:util="http://www.springframework.org/schema/util"
 xsi:schemaLocation="
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="location" value="propertyPlaceHolder.properties"/>
    </bean>
    <bean id ="student" class="co.jp.beanFactoryPost.Student">
     <property name="name">
      <value>${name}</value>
     </property>
     <property name="age">
      <value>${age}</value>
     </property>
     <property name="birth">
      <value>${birth}</value>
     </property>
    </bean>
</beans>


在这个配置文件中最重要的就是下面这段代码,

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="location" value="propertyPlaceHolder.properties"/>
</bean>


PropertyPlaceholderConfigurer会读取location所设定的属性文件,并将properties文件中的值,设定给${name},${age},${birth}从而完成依赖注入。
相应的properties文件的定义如下:
name=xiaohailin
age=27
birth=19820123
这里用到的student bean,的class的代码如下:
比较简单,主要是一个get,set方法

package co.jp.beanFactoryPost;
public class Student {
    private String name;
    private String age;
    private String birth;
    public void setName(String name)
    {
        this.name = name;
    }
    public void setAge(String age)
    {
        this.age = age;
    }
    public void setBirth(String birth)
    {
        this.birth = birth;
    }
    public String getName()
    {
        return this.name;
    }
    public String getAge()
    {
        return this.age;
    }
    public String getBirth()
    {
        return this.birth;
    }
}


接着,写一个测试的主类,代码如下:
public class PropertyHolderPlaceDemo {

    public static void main(String[] args) {
       
        ApplicationContext ctx = new ClassPathXmlApplicationContext("propertyPlaceHolder.xml");
       
        Student student = (Student) ctx.getBean("student");
        System.out.println(student.getAge());
        System.out.println(student.getBirth());
        System.out.println(student.getName());  
    }
}

 

更多详细信息请查看  Spring 教程 http://www.itchm.com/forum-59-1.html

分享到:
评论

相关推荐

    SpringDM笔记6-Fragment及配置Log4j Fragment Bundle

    Spring DM是Spring框架在OSGi(Open Service Gateway Initiative)环境下的扩展,它允许在模块化环境中管理Spring应用程序。 首先,让我们了解什么是Fragment Bundle。在OSGi框架中,Bundle是基本的部署单元,类似...

    Spring中PropertyPlaceholderConfigurer的使用

    Spring 中 PropertyPlaceholderConfigurer 的使用 PropertyPlaceholderConfigurer 是 Spring 框架中的一个重要组件,用于加载和管理 Properties 文件。它能够将 Properties 文件中的键值对注入到 Spring 的 bean 中...

    spring学习笔记2

    ### Spring框架核心知识点详解:Bean生命周期与AOP深入解析 #### Bean生命周期管理 Spring框架中的Bean生命周期管理是其核心功能之一,它通过一系列的接口和类来实现对Bean的创建、初始化、销毁等过程的控制。以下...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    `PropertyPlaceholderConfigurer`是Spring提供的一个Bean工厂后处理器,它的主要任务是在Spring容器初始化Bean时,替换掉XML配置文件中所有`${...}`形式的占位符,将其替换为对应属性文件中的实际值。这使得我们可以...

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...

    Spring 容器后处理器

    BeanFactoryPostProcessor接口是Spring框架提供的一个接口,用于扩展Spring容器的功能。该接口只有一个方法`postProcessBeanFactory`,该方法在容器加载完成之后被调用,可以用来改变容器中的配置或做一些初始化工作...

    spring-reference

    Spring框架的核心是其IoC容器,该容器负责管理应用程序中的对象及其依赖关系。 #### 1.2 使用场景 Spring框架可以应用于多种不同的场景,包括但不限于: - **Web开发**:Spring MVC提供了强大的功能来支持构建基于...

    Spring学习笔记

    ### Spring学习笔记核心知识点解析 #### 一、消息资源配置(`Messagesource`) 在Spring框架中,`Messagesource`接口被用来支持国际化(i18n),它提供了一种方式来根据不同的区域设置(locale)加载不同的资源...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.1.1. 使用BeanPostProcessor的Hello World示例 3.7.1.2. RequiredAnnotationBeanPostProcessor示例 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7....

    最新spring框架学习笔记(全)资料.pdf

    Spring框架的核心是应用上下文(ApplicationContext),它作为一个容器,负责管理和装配应用程序中的各种组件,如bean。 Spring框架并不专注于提供特定功能,如Hibernate用于数据库操作,Struts用于HTTP请求处理。...

    spring-framework:spring-framework原始阅读笔记-spring源码阅读

    本文将基于“spring-framework原始阅读笔记”展开,深入探讨Spring的核心组件,包括容器实现、属性名解析、AOP(面向切面编程)以及SpringMVC的细节。 首先,让我们从Spring的核心——容器开始。Spring容器是整个...

    4.Spring应用扩展.pptx

    《Spring应用扩展》 在Spring框架中,应用扩展是一个重要的概念,它涉及到Spring的灵活性和可配置性。扩展Spring的应用通常包括对配置的拓展、Bean的作用域管理以及依赖注入的实现方式。以下将详细讲解这些知识点。...

    spring-framework-reference-4.1.2

    13 Using Log4J ............................................................................................. 14 II. What’s New in Spring Framework 4.x ..................................................

    spring整合三大框架笔记

    ### Spring 整合三大框架知识点详解 #### 一、整合原理概述 在现代Java Web开发中,Spring框架作为核心框架,常与其他多个框架进行整合,以实现更强大的功能和服务。本节将详细介绍如何将Spring与Struts2、...

    Spring如何使用PropertyPlaceholderConfigurer读取文件

    PropertyPlaceholderConfigurer的原理是,Spring容器初始化的时候,会读取xml或者annotation对Bean进行初始化。在初始化的时候,PropertyPlaceholderConfigurer会拦截Bean的初始化,并对配置的${pname}进行替换,...

    最新spring框架学习笔记(全)资料 (2).pdf

    IoC使得对象的创建和依赖关系的管理由Spring容器负责,而AOP则允许开发者分离关注点,如日志、事务管理等,使其独立于业务逻辑。 在实际应用中,首先需要将Spring的jar包导入项目中,然后创建一个名为`...

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    `org.springframework.beans.factory.config.PropertyPlaceholderConfigurer` 是Spring框架中的一个重要组件,主要负责处理配置文件中的占位符替换。这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性...

    spring-reference.pdf

    #### 四、Spring容器的扩展与定制 - **BeanPostProcessors**:在Bean初始化前后进行操作的接口。 - **BeanFactoryPostProcessors**:在BeanFactory实例化后对BeanDefinition进行修改的接口。 - **Property ...

    spring

    ”表明这是一次尝试性的学习或探索Spring框架的过程。 **Spring框架关键知识点解析** Spring是一个开源的轻量级Java应用开发框架,旨在简化企业级应用程序的开发过程,其核心是控制反转(Inversion of Control, ...

Global site tag (gtag.js) - Google Analytics