一般的Bean对象都是被定义在*.xml中的,xml中的各个bean的属性注入非常方便。
但是有些时候在阅读xml的时候就非常的费劲儿,尤其是在文件中定义了很多内容。
有的定义好了,基本不会改变,有的就需要改变。这个时候可以使用BeanFactoryPostProcessor接口来解决。
*.beans.factory.config.BeanFactoryPostProcessor;这个名称的意思说当依赖注入到BeanFactory之后可以进行处理,具体怎么处理看情况而定。
*.beans.factory.config.PropertyPlaceholderConfigurer实现了BeanFactoryPostProcessor接口。
就可以用它来完成。
<?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="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>hello.properties</value>//资源文件名称
</property>
</bean>
<bean id="helloBean" class="com.baidu.HelloBean">
<property name="helloWord">
<value>${helloWord}</value>//资源文件属性名
</property>
....
</bean>
......
</beans>
PropertyPlaceholderConfigurer类会读取hello.properties文件到本地location,并将读取到的资源文件属性值赋值给helloWord。从而完成依赖注入
另一种情况是完成高权限的统一。spring提供了一个BeanFactoryPostProcessor实现类。
*.beans.factory.config.PropertyOverrideConfigurer;
<?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="configBean" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="location">
<value>hello.properties</value>
</property>
</bean>
<bean id="helloBean" class="com.baidu.HelloBean">
<property name="helloWord">
<value>Hello!caterpillar!</value>
</property>
....
</bean>
....
</beans>
helloBean.helloWord=Hello!Justin!
分享到:
相关推荐
在创建了 BeanDefinition 对象后,Spring 框架会调用 BeanFactoryPostProcessor 接口对其进行增强处理。BeanFactoryPostProcessor 是一种特殊的接口,用于在 BeanDefinition 对象创建完成后对其进行修改或增强。例如...
依赖注入(DI)是Spring框架的核心特性,它允许对象定义它们所依赖的对象,然后由Spring IoC容器在运行时动态注入这些依赖。这种方式提高了组件之间的解耦,并且通过控制反转(IoC)模式,使开发者可以专注于业务...
在Spring框架中,核心组件包括BeanFactory、BeanDefinitionReader、BeanFactoryPostProcessor、BeanPostProcessor等。这些组件协作以实现Bean的创建、初始化和生命周期管理。 Bean定义信息 Bean定义信息是描述Bean...
Spring框架中的BeanFactoryPostProcessor是一个非常重要的扩展点,它允许开发者在BeanFactory标准初始化之后对其进行定制和修改。下面我们将详细介绍BeanFactoryPostProcessor的扩展原理和使用方法。 首先,...
Beans是应用程序中的对象,而Spring框架则负责创建这些对象,并管理它们之间的依赖关系。 #### 3.2 BeanFactory 和 Bean 定义 - 基础知识 ##### 3.2.1 BeanFactory BeanFactory是Spring框架中最基本的IoC容器接口,...
- **依赖注入**:是Spring框架的核心特性之一,它允许将对象间的依赖关系通过外部容器来配置和管理,从而降低组件间的耦合度。 #### 二、Spring框架的核心机制深入解析 - **依赖注入** - **设值注入** - 通过...
- **Dependency Injection (DI)**:依赖注入是Spring框架的核心特性之一,它使得对象之间的依赖关系可以通过外部配置而非硬编码的方式实现。 - **接口注入**(Type 1):通过接口的方法来注入依赖,这种方式在...
Spring4中文文档详细阐述了Spring框架的核心概念、模块划分、使用场景以及技术细节。文档从Spring的概述开始,介绍了依赖注入和控制反转(IoC)的基本原理,然后细分为多个模块,包括核心容器、面向切面编程(AOP)...
标题《Spring IoC源码深度剖析开源架构源码2021.pdf》和描述《Spring IoC源码深度剖析开源架构源码2021.pdf》表明该文档主要面向于分析Spring框架中控制反转(IoC)容器的核心源码,解析和理解其内部的工作机制及...
12. Spring beans:是Spring框架中的核心组件,提供了一个通用的方式来创建和管理对象。 13. 配置Bean的方式:包括XML配置、JavaConfig、注解配置等。 14. Spring支持的几种bean的作用域:包括singleton、...
Spring IOC,全称为Inversion of Control,中文常被称为“控制反转”,是Spring框架的核心特性,也是面向切面编程(AOP)的基础。它通过将对象的创建和管理权交给容器来实现,使得开发者无需手动创建和管理对象,...
5. **spring-expression-5.2.5.RELEASE.jar**:Spring表达式语言(SpEL)是Spring框架的一个强大特性,它允许在运行时通过表达式来查询和操作对象图。SpEL支持复杂的逻辑运算,可以用来在配置中动态计算属性值,或者...
Spring框架是Java开发中最受欢迎的轻量级框架之一,它为构建可维护、高性能的应用程序提供了全面的支持。Spring 3.2.13.RELEASE是该框架的一个稳定版本,包含了丰富的特性和改进。这个源码包是学习和理解Spring工作...
Spring框架是Java开发中的核心库,它为构建高质量的应用提供了全面的解决方案。Spring 4.3.24.RELEASE是该框架的一个稳定版本,它包含了丰富的功能和优化,旨在提高开发效率和应用的可维护性。本文将详细探讨Spring ...
### Spring Analysis:深入理解Spring框架的核心机制 #### 一、Spring框架概述 Spring框架是一个开源的Java平台,它提供了一套全面的编程和支持模型来帮助开发者构建应用。Spring框架的核心特性包括依赖注入...