spring学习——BeanPostProcessor接口解析

admin 09-12 系统学习 暂无评论

BeanPostProcessor接口含义:后置处理Bean,主要实现就是,对于spring容器创建的对象进行加工(可以理解为给你提供一个添加功能的接口)


程序员实现BeanPostProcessor规定接口中的方法:

Object postProcessBeforeInitiallization(Obiect bean String beanName).

作用: Spring创建完对象,并进行注入后,可以运行Before方法进行加工获得Spring创建好的对象:通过方法的参数,最终通过返回值交给Spring框架

Object postProcessAfterInitiallization(Obiect bean String beanName).

作用: Spring执行完对象的初始化操作后,可以运行After方法进行加工获得Spring创建好的对象:通过方法的参数,最终通过返回值交给Spring框架


比如我们实现一个BeanPostProcessor接口


1、实现接口
 
package com.chunge.benpost;

import com.chunge.entity.User;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;


/**
 * @author chunge
 * @description: TODO
 * @date 2021/9/128:41
 */
public class MyBeanPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    /**
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        //MyBeanPostProcessor  会对有所对象进行加工处理,多有这里我们需要判断类型,只处理我们需要的对象
        if ( bean instanceof  User){
            User user =(User)bean;
            user.setName("荷兰男孩");
        }
        return bean;
    }
}


xml 中配置
 
    <bean id="myBeanPostProcessor"  class="com.chunge.benpost.MyBeanPostProcessor"></bean>



转载请注明来自一个开发者的工作笔记——荷兰男孩的博客,本文标题:《spring学习——BeanPostProcessor接口解析》

喜欢( ) 发布评论

分享到:

spring学习——自定义类型转化器 spring学习——MethodInterceptor接口解析