在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方法之后,紧跟着。
分享到:
相关推荐
Java自定义注解和Spring的BeanPostProcessor是Java企业级开发中的两个重要概念,它们在构建灵活、可扩展的应用程序中发挥着关键作用。本文将深入探讨这两个话题,并结合源码分析,帮助开发者更好地理解和应用。 ...
本节通过重写这些锚点,学习如何使用BeanPostProcessor、获取各类BeanAware并且理清bean的生命周期 代码 控制台 // 控制台的输出结果 1. postProcessBeforeInstantiation被调用 2. 构造方法被调用,name:小小 3. ...
com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean...
**Spring 2.5 学习大纲** Spring 2.5 是一个重要的版本,它包含了许多关键特性,如控制反转(IoC)和面向切面编程(AOP),旨在简化企业级Java应用的开发。本大纲涵盖了从环境搭建到高级特性的详细讲解。 1. **...
Spring框架是Java开发中最常用的轻量级框架之一,它提供了许多功能,如依赖注入、面向切面编程(AOP)、事务管理等。以下是对标题和描述中涉及的Spring面试知识点的详细解释: 1. **Spring Bean生命周期**: Spring ...
在深入Spring源码的学习过程中,我们主要关注BeanDefinition的装载过程。BeanDefinition是Spring框架的核心概念,它包含了关于Bean的所有元数据,如类名、属性、依赖关系等。在Spring初始化时,会读取XML配置文件,...
Spring学习思维导图 Spring是一个轻量级的JavaEE解决方案,它解决了EJB的问题,如运行环境苛刻、移植性差等。Spring的本质是一个工厂加配置文件,通过工厂设计模式来解决耦合问题。 一、工厂设计模式 工厂设计...
【Spring 2.0 知识点详解】 Spring 2.0是Java企业级应用开发中的重要框架,它以其简洁的“实用主义”原则降低了J2EE开发的复杂性。...无论是初学者还是经验丰富的开发人员,都可以从Spring 2.0的学习中获益匪浅。
本笔记将深入探讨Spring的源码学习,重点理解其核心组件和生命周期。 首先,Spring通过反射机制来实例化对象。在Java中,我们可以使用`Class.forName()`方法根据完全限定类名获取类对象,或者通过已有对象的`...
总的来说,Spring框架5.2.8.RELEASE源码的学习是一次深入理解Java企业级开发、掌握模块化设计和面向切面编程理念的宝贵机会。通过深入研究源码,开发者可以提升自己的编程技巧,为开发高质量的、可维护的应用程序...
学习源码后,你可以根据需要自定义Spring的扩展,如编写新的BeanPostProcessor、AOP切面、或者定制化的Web MVC控制器。 7. **实践应用** 结合实际项目,将学到的知识应用于解决具体问题,比如优化数据访问策略、...
最后,Spring还提供了BeanPostProcessor接口,允许开发者提供自己的实例化逻辑,以及在调用初始化方法前后对Bean进行额外的处理。此外,Spring还支持Bean定义的继承,以及Bean作用域的设置,例如单例作用域和原型...
Spring框架作为Java领域内最为流行的企业级应用开发框架,其...对于有志于深入学习和掌握Spring框架的开发者来说,理解并熟练运用BeanPostProcessor和Annotation机制将有助于编写高质量、可维护的Java企业级应用代码。
总之,这个压缩包是学习Spring框架源码的宝贵资源,无论你是想要了解Spring的基本工作原理,还是想深入研究其高级特性,都能从中受益匪浅。通过阅读和分析源码,开发者能够更有效地利用Spring框架,设计出更高效、更...
1. **BeanPostProcessor**:这是Spring容器中Bean的后置处理器接口,它允许在Bean实例化之后执行自定义的操作。Spring自身已经实现了多个BeanPostProcessor,例如: - `ApplicationContextAwareProcessor`:用于...
由于提供的文件信息中包含大量的重复链接和无实际内容的文字,这部分内容无法提取出有价值的信息,因此将不...以上知识点将帮助您更深入地理解Spring框架的架构与设计原理,为进一步学习和应用Spring打下坚实的基础。
在Spring框架中,为了满足不同开发需求,提供了一系列的扩展接口。这些接口允许开发者自定义对象的生命周期行为,实现特定的功能或对Spring容器的行为进行干预。以下是对这些接口的详细解释: 1. **...
11. **Bean后处理器**:通过实现`BeanPostProcessor`接口,可以在Bean实例化后对Bean进行自定义处理,如属性的修改。 12. **ApplicationContext后处理器**:`ApplicationListener`接口允许监听ApplicationContext...