05-spring bean的后置处理器BeanPostProcessor

一、BeanPostProcessor 概述

spring为我们提供了一个BeanPostProcessor接口,该接口扩展了bean创建时指定的init-method方法的功能。BeanPostProcessor接口有两个方法,用于在bean的初始化方法前后执行对应的方法 且相对于bean的init方法来说,BeanPostProcessor更具有通用性,它对spring中所有的bean都有效。

二、示例
  • MyBeanPostProcessor类
    MyBeanPostProcessor是自己新建的类,实现了BeanPostProcessor接口,代码如下:
    /**
     * BeanPostProcessor 接口提供了在bean的创建过程中的一种扩展能力
     * 它是对 bean的init-method方法的一种扩充
     * 相对于 init-method 更加的通用,它是对spring中所有bean的创建都有效
     * @date 2020/9/1 11:45 PM
     */
    public class MyBeanPostProcessor implements BeanPostProcessor {
    
        /**
         * bean初始化之前调用该方法 init-method方法之前执行
         * @param bean
         * @param beanName
         * @return
         * @throws BeansException
         */
        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            System.out.println("bean 调用初始化方法之前调用 beanName = " + beanName );
            return bean;
        }
    
        /**
         * bean销毁前调用该方法
         * @param bean
         * @param beanName
         * @return
         * @throws BeansException
         */
        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
            System.out.println("bean 调用初始化方法之后调用 beanName = " + beanName );
            return bean;
        }
    }
    
    
  • xml配置
    <!-- 配置bean的后置处理器 beanpostprocessor-->
    <bean id = "myBeanPostProcessor" class="com.haici.spring.demo.proccess.MyBeanPostProcessor">
    
  • 测试结果
    bean 调用初始化方法之前调用 beanName = myfactry
    bean 执行初始化方法
    bean 调用初始化方法之后调用 beanName = myfactry
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值