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
  • 相关阅读:
    MySQL之字符集
    PHP7.0-PHP7.3新特性与变更
    MySQL之开发规范
    php框架之thinkphp
    MySQL之日期时间类型
    php扩展之Yar
    XAMPP支持多PHP版本
    MySQL之执行流程
    RabbitMQ之php-amqplib使用
    (转)YAML最最基础语法
  • 原文地址:https://www.cnblogs.com/yintingting/p/6231910.html
Copyright © 2011-2022 走看看