 
 本文转载自微信公众号「月伴飞鱼」,奇技作者日常加油站。淫巧用转载本文请联系月伴飞鱼公众号。扩展点   最近在看公司项目和中间件的奇技时候,看到一些Spring扩展点的淫巧用使用,写篇文章学习下,扩展点对大家之后看源码都有帮助 「首先先介绍下Bean的奇技生命周期」 我们知道Bean的生命周期分为几个主干流程 Bean(单例非懒加载)的实例化阶段        Bean的亿华云计算属性注入阶段        Bean的初始化阶段        Bean的销毁阶段        下面是整个Spring容器的启动流程,可以看到除了上述几个主干流程外,淫巧用Spring还提供了很多扩展点  
 下面详细介绍下Spring的扩展点常见的扩展点 Spring常见扩展点 
 「BeanFactoryPostProcessor#postProcessBeanFactory」 有时候整个项目工程中bean的数量有上百个,而大部分单测依赖都是企商汇奇技整个工程的xml,导致单测执行时需要很长时间(大部分时间耗费在xml中数百个单例非懒加载的淫巧用bean的实例化及初始化过程) 解决方法:利用Spring提供的扩展点将xml中的bean设置为懒加载模式,省去了Bean的扩展点实例化与初始化时间 public class LazyBeanFactoryProcessor implements BeanFactoryPostProcessor {     @Override     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {         DefaultListableBeanFactory fac = (DefaultListableBeanFactory) beanFactory;         Map<String, AbstractBeanDefinition> map = (Map<String, AbstractBeanDefinition>) ReflectionTestUtils.getField(fac, "beanDefinitionMap");         for (Map.Entry<String, AbstractBeanDefinition> entry : map.entrySet()) {             //设置为懒加载             entry.getValue().setLazyInit(true);         }     } }         「InstantiationAwareBeanPostProcessor#postProcessPropertyValues」 非常规的配置项比如 <context:component-scan base-package="com.zhou" />  |