zoukankan      html  css  js  c++  java
  • Spring后置处理器BeanPostProcessor

    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)
    
  • 相关阅读:
    c#之线程池优先级
    c#之线程池
    c# 回调委托
    c# Beginlnvoke 委托
    Qrcode生成二维码支持中文,带图片,带文字
    http://fonts.googleapis.com/css?打开很慢解决方案
    MVC多语言应用
    SQL参数化查询的问题
    MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法
    CSS计数器妙用
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/13844787.html
Copyright © 2011-2022 走看看