zoukankan      html  css  js  c++  java
  • spring-BeanFactoryPostProcessor

    BeanFactoryPostProcessor 也是spring的一个扩展点,可以插手bean实例化的过程。
    示例:
    package com.test3;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @ComponentScan("com.test3")
    public class AppConfig {
    }
    package com.test3;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class Bean2 {
    }
    package com.test3;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanDefinition;
    import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
        public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
          BeanDefinition beanDefinition =  configurableListableBeanFactory.getBeanDefinition("bean2");
           beanDefinition.setScope("prototype");
        }
    }
    package com.test3;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class MyTest {
    
        public static void main(String[] args) {
            AnnotationConfigApplicationContext context =
                    new AnnotationConfigApplicationContext(AppConfig.class);
            System.out.println(context.getBean(Bean2.class));
            System.out.println(context.getBean(Bean2.class));
        }
    }

    执行结果:

    com.test3.Bean2@80ec1f8
    com.test3.Bean2@1445d7f
  • 相关阅读:
    ubuntu18安装paddle的cpu版本错误
    博客园的推荐150名大牛的地址
    课堂翻译
    小组介绍
    Sunshine小组
    项目进程
    总结
    布置的开发项目
    一周总结
    每周学习
  • 原文地址:https://www.cnblogs.com/yintingting/p/6231910.html
Copyright © 2011-2022 走看看