15、生命周期-BeanPostProcessor-后置处理器

15、生命周期-BeanPostProcessor-后置处理器

  • BeanPostProcessor 接口
package org.springframework.beans.factory.config;

import org.springframework.beans.BeansException;
import org.springframework.lang.Nullable;

public interface BeanPostProcessor {

    // 初始化之前
	@Nullable
	default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
		return bean;
	}

    // 初始化之后
	@Nullable
	default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
		return bean;
	}

}

15.1 编写MyBeanPostProcessor 实现BeanPostProcessor接口

package com.hw.springannotation.beans;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;

/**
 * @Description 后置处理器
 * @Author Administrator
 * @Date 2018/11/28
 */
@Component  // 将后置处理器加入到IOC容器中
public class MyBeanPostProcessor implements BeanPostProcessor {

    /**
     * @return 返回之后要用 的 bean
     */
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(" postProcessBeforeInitialization" + beanName + "> " + bean);
        return bean;
    }

    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(" postProcessAfterInitialization" + beanName + "> " + bean);
        return bean;
    }
}

15.2 测试

原文地址:https://www.cnblogs.com/Grand-Jon/p/10030829.html