`
lgstarzkhl
  • 浏览: 335514 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

容器扩展点之PropertyPlaceholderConfigurer

阅读更多
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()); 
    }
}
分享到:
评论

相关推荐

    4.Spring应用扩展.pptx

    以下将详细讲解这些知识点。 首先,我们来看如何拓展Spring的配置。在Spring中,我们通常会在XML配置文件中定义Bean及其属性。然而,为了更好地管理和组织配置,我们可以采用多种方法来扩展配置。例如,可以将...

    在Spring中使用加密外部属性文件

    Spring默认的`PropertyPlaceholderConfigurer`不直接支持加密的属性文件,但它提供了扩展点,允许我们自定义实现来处理加密后的属性。以下是一种实现方式: 1. 创建一个自定义的`PropertyPlaceholderConfigurer`...

    spring 启动时加载不同的文件

    ### Spring启动时根据配置文件加载不同文件的知识点详解 #### 一、背景介绍 在实际的应用开发中,根据运行环境的不同(例如开发环境、测试环境、生产环境等),应用程序往往需要连接不同的数据库或其他资源。为了...

    属性占位符配置器

    ### 属性占位符配置器:Spring框架中的高级配置机制 #### 一、概念解析 在Spring框架中,**属性占位符配置器**(Property Placeholder ...理解和掌握这一特性,对于构建稳定、高效和可扩展的应用系统具有重要意义。

    spring

    **Spring框架关键知识点解析** Spring是一个开源的轻量级Java应用开发框架,旨在简化企业级应用程序的开发过程,其核心是控制反转(Inversion of Control, IoC)和面向切面编程(Aspect-Oriented Programming, AOP...

    spring-reference1.2.pdf

    根据提供的文档信息,我们可以深入探讨Spring框架的核心概念与特性,特别是版本1.2中的关键知识点。...Spring框架的强大之处在于它的灵活性和可扩展性,这些特点使得它成为构建Java应用程序的理想选择之一。

    spring-reference.pdf

    综上所述,Spring框架通过其强大的依赖注入机制和丰富的扩展点,为Java开发者提供了一个灵活、高效、可扩展的开发平台。无论是构建简单的Web应用还是复杂的企业级系统,Spring都能提供强有力的支持。

    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-framework:spring-framework原始阅读笔记-spring源码阅读

    Spring Framework是Java开发中的核心框架,以其灵活、可扩展性著称,广泛应用于企业级应用开发。本文将基于“spring-framework原始阅读笔记”展开,深入探讨Spring的核心组件,包括容器实现、属性名解析、AOP(面向...

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

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

    spring.net中文手册在线版

    它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 ...

Global site tag (gtag.js) - Google Analytics