Spring提供开放式接口整理系列一

Spring源码分析之InstantiationAwareBeanPostProcessor

Bean定义后置处理器子接口(二)-InstantiationAwareBeanPostProcessor

前言

InstantiationAwareBeanPostProcessor 接口继承 BeanPostProcessor 接口,上一篇文章专门写了BeanPostProcessor源码分析,既然继承了BeanPostProcessor 接口,对于实现了InstantiationAwareBeanPostProcessor接口的类,应该有以上两个接口都有的功能,InstantiationAwareBeanPostProcessor接口的类还可以进行扩展。

InstantiationAwareBeanPostProcessor 接口定义如下

public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {
   
   //扩展接口
	@Nullable
	default Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException {
   
		return null;
	}
	//扩展接口
	default boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException {
   
		return true;
	}
	//扩展接口
	@Nullable
	default PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName)
			throws BeansException {
   
		return null;
	}
	//扩展接口 目前测试版本已废弃
	@Deprecated
	@Nullable
	default PropertyValues postProcessPropertyValues(
			PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException {
   
		return pvs;
	}
}

现象

一样的方式,通过观察现象再分析内部逻辑
环境准备:
测试的实现类

@Component
public class MyPostProcessor implements InstantiationAwareBeanPostProcessor {
   


    /**
     * 重写 父类 BeanPostProcessor 接口的方法
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
   
        System.out.println("postProcessBeforeInitialization"+"方法执行了,BeanName为:"+beanName);
        return null;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值