【知识库】--spring ApplicationContext 功能的扩展起始点-prepareBeanFactory(241)
来源:互联网 发布:eve冬眠者数据库 编辑:程序博客网 时间:2024/05/22 04:35
ApplicationContext扩展开始ing
/** * Configure the factory's standard context characteristics, * such as the context's ClassLoader and post-processors. * * @param beanFactory the BeanFactory to configure */ protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { // Tell the internal bean factory to use the context's class loader etc. beanFactory.setBeanClassLoader(getClassLoader()); //主要是在解析依赖注入bean的时候,以及在完成bean的初始化和属性获取后进行属性填充的时候 beanFactory.setBeanExpressionResolver(new StandardBeanExpressionResolver()); //表达式语言处理器默认可以使用#{bean.xx} beanFactory.addPropertyEditorRegistrar(new ResourceEditorRegistrar(this, getEnvironment())); //bean属性设置管理的工具 通用的属性编辑器 如Class URL 等。自定义属性编辑器:只需要实现 PropertyEditorRegistrar接口即可(最终会被AbstractBeanFactory持用) 或者 xml注入到CustomEditorConfigurer中的customEditors Map中。等待初始化beanWrapper时调用initBeanWrapper触发。 //Configure the bean factory with context callbacks.// Configure the bean factory with context callbacks.beanFactory.addBeanPostProcessor(new ApplicationContextAwareProcessor(this));beanFactory.ignoreDependencyInterface(ResourceLoaderAware.class);beanFactory.ignoreDependencyInterface(ApplicationEventPublisherAware.class);beanFactory.ignoreDependencyInterface(MessageSourceAware.class);beanFactory.ignoreDependencyInterface(ApplicationContextAware.class);beanFactory.ignoreDependencyInterface(EnvironmentAware.class);// BeanFactory interface not registered as resolvable type in a plain factory.// MessageSource registered (and found for autowiring) as a bean.beanFactory.registerResolvableDependency(BeanFactory.class, beanFactory);beanFactory.registerResolvableDependency(ResourceLoader.class, this);beanFactory.registerResolvableDependency(ApplicationEventPublisher.class, this);beanFactory.registerResolvableDependency(ApplicationContext.class, this);// Detect a LoadTimeWeaver and prepare for weaving, if found.if (beanFactory.containsBean(LOAD_TIME_WEAVER_BEAN_NAME)) {beanFactory.addBeanPostProcessor(new LoadTimeWeaverAwareProcessor(beanFactory));// Set a temporary ClassLoader for type matching.beanFactory.setTempClassLoader(new ContextTypeMatchClassLoader(beanFactory.getBeanClassLoader()));}// Register default environment beans.if (!beanFactory.containsLocalBean(ENVIRONMENT_BEAN_NAME)) {beanFactory.registerSingleton(ENVIRONMENT_BEAN_NAME, getEnvironment());}if (!beanFactory.containsLocalBean(SYSTEM_PROPERTIES_BEAN_NAME)) {beanFactory.registerSingleton(SYSTEM_PROPERTIES_BEAN_NAME, getEnvironment().getSystemProperties());}if (!beanFactory.containsLocalBean(SYSTEM_ENVIRONMENT_BEAN_NAME)) {beanFactory.registerSingleton(SYSTEM_ENVIRONMENT_BEAN_NAME, getEnvironment().getSystemEnvironment());}}
阅读全文
0 0
- 【知识库】--spring ApplicationContext 功能的扩展起始点-prepareBeanFactory(241)
- 【知识库】--spring ApplicationContext 扩展起始点-prepareBeanFactory-registerResolvableDependency(241)
- spring源码初步学习-容器的功能扩展(ApplicationContext)
- 【知识库】--spring ApplicationContext 加载配置文件 refresh()(241)
- 【知识库】--spring ApplicationContext 环境准备 prepareRefresh()(241)
- 【知识库】--spring ApplicationContext 获取BeanFactory obtainFreshBeanFactory()(241)
- Spring核心技术(十四)——ApplicationContext的额外功能
- spring扩展容器-ApplicationContext
- Spring:ApplicationContext注意点
- Spring Container的扩展点
- 【Java.Spring.Core】【IoC】ApplicationContext的附加功能(国际化,未完待续)
- Spring源码阅读(四)—容器的功能拓展ApplicationContext
- 【知识库】--dubbo SPI 动态扩展点之getAdaptiveExtension()触发调用链(267)
- 【知识库】--dubbo SPI 动态扩展点之 buildInvokerChain 责任链 构建(267)
- Spring Framework之IOC容器的扩展点(TODO)
- Spring中ApplicationContext对Beanfactory扩展
- spring扩展容器-ApplicationContext之BeanFactoryPostProcessor
- spring扩展容器-ApplicationContext之BeanPostProcessor
- Fragment使用踩坑实践
- 极光推送-java工具类
- 艺高集团亚太地区最大系统——Jackson系统!
- [随笔]深度
- path="/"是什么意思 <Context path="/" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />
- 【知识库】--spring ApplicationContext 功能的扩展起始点-prepareBeanFactory(241)
- 史上最简单的 MySQL 教程(二十三)「数据的高级操作 之 查询(上)」
- HTTP协议的概述
- 经典算法系-并查集(Union-Find Sets)
- 2017.06.25 大二第三学期第五次题目
- 基于netty4的beanstalkd的java客户端实现
- 娱乐文化优先股如何投资?Jackson系统给您介绍!
- 美团 CodeM 资格赛 Round A 倒水 讨论+二分
- c++实现md5加密