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
  • 相关阅读:
    Linux 配置 SSL 证书
    freemarker 异常处理
    StringTemplateLoader的用法
    序列的重点知识小结
    Linux下安装lrzsz上传下载工具
    ajax技术
    Response对象介绍(服务器到客户端)
    Request对象介绍(客户端到服务器)
    JSP--内置对象&动作标签介绍
    JSP--常用指令
  • 原文地址:https://www.cnblogs.com/yintingting/p/6231910.html
Copyright © 2011-2022 走看看