一、两种后处理器(Bean后处理器和容器后处理器)
Spring框架提供了很好的扩展性,除了可以与各种第三方框架良好整合外,其IoC容器也允许开发者进行扩展,这种扩展甚至无须实现BeanFactory或ApplicationContext接口,而是允许通过两个处理器对IoC容器进行扩展。
1、Bean后处理器是一种特殊Bean,这种特殊Bean并不对外提供服务,它甚至可以无须id属性,它主要负责对容器中的其他Bean执行后处理,例如为容器中的Bean生成代理等,这种Bean被称为后处理器。
Bean后处理器必须实现BeanPostProcessor接口,它会在Bean实例创建成功后对Bean进行进一步增强处理,该接口包含如下两个方法:
Object postProcessBeforeInitialization(Object bean,String name) throw BeansException目标Bean初始化之前被回调
Object postProcessAfterInitialization(Object bean,String name) throw BeansException目标Bean初始化之后被回调
关联之前基本用法中提到的init-method和实现InitializingBean后提供的afterPropertiesSet()方法,它们的调用顺序如下图
如果采用BeanFactory作为Spring容器时必须手动注册BeanPostProcessor,如果用ApplicationContext作为容器则无需手动注册,它会自动检测到Bean后处理器,自动注册。
如果需要对容器中谋一批Bean进行通用的增强处理,则可考虑使用Bean后处理器
2、容器后处理器负责处理容器本身,它必须实现BeanFactoryPostProcessor接口,该接口必须实现如下一个方法:
void postProcessorBeanFactory(ConfigurableListableBeanFactory beanFactory)由于此方法只是对Spring容器进行后处理,它并不需要完全替换Spring容器,因此该方法无需任何返回值。
实现postProcessorBeanFactory接口的容器后处理器不仅可对BeanFactory执行后处理,也可以对ApplicationContext容器执行后处理。容器后处理器还可用来注册额外的属性编辑器。
Spring已提供如下几个常用的容器后处理器。
①PropertyPlaceHolderConfigurer:属性占位符配置器。
负责读取属性文件里的属性值,并将这些属性值设置成Spring配置文件的元数据,通过使用此后处理器可以将Spring配置文件中的部分元数据放在属性文件中设置,这种配置方式当然有其优势:可以将部分相似的配置(比如说数据库的URL、用户名和密码)放在特定的属性文件失踪,如果只需要修改这部分配置,则无需修改Spring配置文件,修改属性文件即可,从而降低修改配置文件产生错误的风险。(注意抽离得太多个属性文件,可能会降低Spring配置文件的可读性)
例:<bean class="org.springframework,beans.factory.config.PropertyPlaceHolderConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!--如果有多个属性文件,依次在下面列出来-->
<!--value>wawa.properties</value-->
</list>
</property>
</bean>
②PropertyOverrideConfigurer:重写占位符配置器。
PropertyOverrideConfigurer的属性文件指定的信息可以直接覆盖Spring配置文件中的元数据。即:PropertyOverrideConfigurer允许XML配置文件中又默认的配置信息。
<bean class="org.springframework,beans.factory.config.PropertyOverrideConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!--如果有多个属性文件,依次在下面列出来-->
<!--value>wawa.properties</value-->
</list>
</property>
</bean>
相关推荐
一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...
《Spring 揭秘:全面深入了解Spring》是一本旨在帮助开发者深入理解并熟练掌握Spring框架的权威指南。Spring是Java企业级应用开发中的基石,它以其模块化、易用性和强大的功能深受开发者喜爱。这本书详细阐述了...
在深入解析Spring技术内幕第2版中,会详细探讨Spring框架的核心架构与设计原理,Spring作为一个轻量级的Java平台,提供了全面的编程和配置模型,是企业级Java应用程序开发中广泛使用的技术之一。 Spring的核心特性...
《深入理解Spring Cloud与微服务构建》是针对Java开发者,特别是对微服务架构感兴趣的开发者的一本重要参考资料。Spring Cloud作为目前最流行的微服务框架之一,它提供了构建分布式系统所需的多种工具和服务,包括...
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》一书深入浅出地介绍了Spring框架的核心概念和技术细节,对于希望深入了解Spring内部工作机制的开发者来说是一本非常有价值的参考书籍。通过学习本书,...
Spring技术内幕:深入解析Spring架构与设计原理 Spring是Java企业应用开发的主要框架之一,其架构和设计原理对Java开发者具有重要影响。本文将深入解析Spring架构和设计原理,对Spring的核心概念、架构设计和关键...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(IOC)和面向切面编程(AOP)功能闻名。为了深入理解Spring的内部原理,我们可以从以下几个关键知识点入手。 1. **依赖注入(Dependency Injection,...
“《深入解析Spring MVCgn Web Flow》为Spring社区弥补了一大空白。” ——Lasse Koskela.JavaRanch版主,Test Driven作者“《深入解析Spring MVCgn Web Flow》是非常急缺的深入讲解Spring MVCf~~Spring Web Flow的...
Spring技术内幕:深入解析Spring架构与设计原理 Spring技术内幕 Spring是一个基于Java的开源框架,旨在简化Java企业应用的开发。Spring的目标是提供一个简洁、灵活、可扩展的框架,以帮助开发者快速构建企业级...
《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf
通过深入阅读和分析Spring源码,不仅可以提升我们的技术能力,还能培养我们对软件设计原则和模式的理解,为成为一名更优秀的开发者奠定基础。Tom老师的这份资料无疑是一份宝贵的资源,它将引导我们逐步揭开Spring的...
Spring 是一个广泛使用的开源 Java 应用开发框架,它的核心目标是简化企业级应用的开发。Spring 提倡轻量级和依赖注入(Dependency Injection,DI)的理念,允许开发者专注于业务逻辑,而不是对象的创建和管理。通过...
Spring技术内幕 深入解析Spring架构与设计原理1(完整清晰版),一共两部分,这是第一部分 《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自...
第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...
深入理解spring cloud与微服务构建 pdf高清完整版下载 带目录
Spring框架作为Java领域最广泛使用的框架之一,其设计思想和实现方式对于开发者来说具有极高的学习价值。本篇将详细探讨Spring中运用的设计模式及其重要性。 首先,Spring框架中广泛应用了23种经典设计模式,如工厂...
这本书旨在帮助开发者深入理解Spring Web的工作原理,提升对Spring框架的使用和优化能力。下面将详细讨论Spring Web、Spring MVC以及Spring框架的相关知识点。 1. **Spring Web**:Spring Web是Spring框架的一部分...
《深入理解Spring Cloud与微服务构建》是一本专注于讲解如何使用Spring Cloud构建高效、可靠的微服务系统的书籍。Spring Cloud作为目前最流行的微服务框架之一,它提供了大量的工具和服务,帮助开发者快速搭建分布式...
《深入浅出学Spring》这一教学视频为Spring框架的学习提供了详尽且易懂的指导,尤其适合初学者。Spring框架是Java平台上的一个开源框架,它提供了一种全面的基础架构支持,让Java开发者能够开发出更为简洁、高效的...