Spring后置处理器BeanPostProcessor

22 篇文章 0 订阅
3 篇文章 0 订阅

Spring后置处理器BeanPostProcessor

Spring提供了许多扩展点,如FactoryBean、Aware,这里还有BeanPostProcessor

在Spring的生命周期中,BeanPostProcessor在初始化前后处理bean。

在这里插入图片描述

Spring中的bean每个都会经过Bean后置处理器,其中两个方法会一个一个接受bean的实例和beanName,判断类型进行处理即可。
若想使用BeanPostProcessor对bean进行增强,实现该接口即可。
还可以实现Ordered接口处理不同顺序的后置处理器。
@Component
public class BeanPost implements BeanPostProcessor {
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName);
        //通过类型处理
        if(bean instanceof User){
            //转换类型,赋值
            ((User) bean).setAge(19);
        }
        return bean;
    }

    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(bean);
        //通过名字处理
        if(beanName.equals("user")){
            ((User)bean).setSex("女");
        }
        return bean;
    }
}

User bean = ContextUtil.getBean(User.class);
bean.setName("jack");//测试中只增加了姓名
System.out.println(bean);


//后置处理器中输出的内容
user
User(name=null, id=null, sex=null, age=19)

 //最后测试中输出的内容
User(name=jack, id=null, sex=, age=19)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值