`
yznxing
  • 浏览: 370095 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring的BeanPostProcessor学习

    博客分类:
  • java
阅读更多

在spring中可以通过BeanPostProcessor接口来实现,properties注入的时候动态控制bean行为的功能。

接着上面一篇文章中的例子。使用A,B的类,

然后新建一个实现BeanPostProcessor的类。

public class BeanPost implements BeanPostProcessor {

 public Object postProcessAfterInitialization(Object bean, String beanName)
   throws BeansException {

  //其实在这里可以改变返回的properties的内容。
  System.out.println("postProcessAfterInitialization");
  return bean;
 }

 public Object postProcessBeforeInitialization(Object bean, String beanName)
   throws BeansException {

    //其实在这里可以改变返回的properties的内容。
  System.out.println("postProcessBeforeInitialization");
  return bean;
 }

}

 

然后在spring的配置文件里加上该bean的声明,那么在容易中的所有bean在进行实例化的过程中都会受到该BeanPostProcessor的影响。

方法的主要作用就是可以改变设置的bean的内容。

其中postProcessBeforeInitialization 发生在

setProperties方法之后,也就是A的setB方法之后,

InitializingBean的afterPropertiesSet之前,

更在init-method之前。

postProcessAfterInitialization

发生在ini-methodt方法之后,紧跟着。

 

 

0
0
分享到:
评论

相关推荐

    Java自定义注解与spring BeanPostProcessor详解

    Java自定义注解和Spring的BeanPostProcessor是Java企业级开发中的两个重要概念,它们在构建灵活、可扩展的应用程序中发挥着关键作用。本文将深入探讨这两个话题,并结合源码分析,帮助开发者更好地理解和应用。 ...

    spring BeanPostProcessor 生命周期

    本节通过重写这些锚点,学习如何使用BeanPostProcessor、获取各类BeanAware并且理清bean的生命周期 代码 控制台 // 控制台的输出结果 1. postProcessBeforeInstantiation被调用 2. 构造方法被调用,name:小小 3. ...

    com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean,BeanDefinitionRegistryPostProcessor,BeanFactoryPostProcessor,BeanPostProcessor,ResourceLoaderA

    com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean...

    spring2.5学习PPT 传智博客

    **Spring 2.5 学习大纲** Spring 2.5 是一个重要的版本,它包含了许多关键特性,如控制反转(IoC)和面向切面编程(AOP),旨在简化企业级Java应用的开发。本大纲涵盖了从环境搭建到高级特性的详细讲解。 1. **...

    Spring 面试题学习学习

    Spring框架是Java开发中最常用的轻量级框架之一,它提供了许多功能,如依赖注入、面向切面编程(AOP)、事务管理等。以下是对标题和描述中涉及的Spring面试知识点的详细解释: 1. **Spring Bean生命周期**: Spring ...

    Spring源码学习四:BeanDefinition装载前奏曲1

    在深入Spring源码的学习过程中,我们主要关注BeanDefinition的装载过程。BeanDefinition是Spring框架的核心概念,它包含了关于Bean的所有元数据,如类名、属性、依赖关系等。在Spring初始化时,会读取XML配置文件,...

    Spring学习思维导图

    Spring学习思维导图 Spring是一个轻量级的JavaEE解决方案,它解决了EJB的问题,如运行环境苛刻、移植性差等。Spring的本质是一个工厂加配置文件,通过工厂设计模式来解决耦合问题。 一、工厂设计模式 工厂设计...

    java学习之spring2.0

    【Spring 2.0 知识点详解】 Spring 2.0是Java企业级应用开发中的重要框架,它以其简洁的“实用主义”原则降低了J2EE开发的复杂性。...无论是初学者还是经验丰富的开发人员,都可以从Spring 2.0的学习中获益匪浅。

    spring学习源码笔记

    本笔记将深入探讨Spring的源码学习,重点理解其核心组件和生命周期。 首先,Spring通过反射机制来实例化对象。在Java中,我们可以使用`Class.forName()`方法根据完全限定类名获取类对象,或者通过已有对象的`...

    官方原版源码 spring-5.2.8.RELEASE.zip

    总的来说,Spring框架5.2.8.RELEASE源码的学习是一次深入理解Java企业级开发、掌握模块化设计和面向切面编程理念的宝贵机会。通过深入研究源码,开发者可以提升自己的编程技巧,为开发高质量的、可维护的应用程序...

    构建为eclipse项目的spring源码

    学习源码后,你可以根据需要自定义Spring的扩展,如编写新的BeanPostProcessor、AOP切面、或者定制化的Web MVC控制器。 7. **实践应用** 结合实际项目,将学到的知识应用于解决具体问题,比如优化数据访问策略、...

    Java Spring入门简介

    最后,Spring还提供了BeanPostProcessor接口,允许开发者提供自己的实例化逻辑,以及在调用初始化方法前后对Bean进行额外的处理。此外,Spring还支持Bean定义的继承,以及Bean作用域的设置,例如单例作用域和原型...

    Spring Annotaion Support详细介绍及简单实例

    Spring框架作为Java领域内最为流行的企业级应用开发框架,其...对于有志于深入学习和掌握Spring框架的开发者来说,理解并熟练运用BeanPostProcessor和Annotation机制将有助于编写高质量、可维护的Java企业级应用代码。

    spring-framework-5.2.0.RELEASE-master.zip

    总之,这个压缩包是学习Spring框架源码的宝贵资源,无论你是想要了解Spring的基本工作原理,还是想深入研究其高级特性,都能从中受益匪浅。通过阅读和分析源码,开发者能够更有效地利用Spring框架,设计出更高效、更...

    spring学习笔记2

    1. **BeanPostProcessor**:这是Spring容器中Bean的后置处理器接口,它允许在Bean实例化之后执行自定义的操作。Spring自身已经实现了多个BeanPostProcessor,例如: - `ApplicationContextAwareProcessor`:用于...

    SPRING技术内幕_深入解析SPRING架构与设计原理

    由于提供的文件信息中包含大量的重复链接和无实际内容的文字,这部分内容无法提取出有价值的信息,因此将不...以上知识点将帮助您更深入地理解Spring框架的架构与设计原理,为进一步学习和应用Spring打下坚实的基础。

    Spring源码学习八:常用的扩展接口详解1

    在Spring框架中,为了满足不同开发需求,提供了一系列的扩展接口。这些接口允许开发者自定义对象的生命周期行为,实现特定的功能或对Spring容器的行为进行干预。以下是对这些接口的详细解释: 1. **...

    spring的有关学习知识总结

    11. **Bean后处理器**:通过实现`BeanPostProcessor`接口,可以在Bean实例化后对Bean进行自定义处理,如属性的修改。 12. **ApplicationContext后处理器**:`ApplicationListener`接口允许监听ApplicationContext...

Global site tag (gtag.js) - Google Analytics