•AbstractApplicationContext 内建可查找的依赖(springframework,springboot,springcloud所有的应用上下文的一个基类,所有应用上下文的实现,包括注解的AnnotationConfigurationConfigContext实现以及web的实现都是基于这个抽象类实现的,因此抽象类在构建的过程中,在上下文启动的过程中会初始化一些相关的内部的一些依赖,此内部依赖称为可查询的内建依赖。)
Bean 名称 Bean 实例 使用场景
environment Environment 对象 外部化配置(-D参数java系统的一个属性通过属性的方式来修改我应用运行时的一个行为)以及Profiles(配置在不同的阶段可以生成不同的行为)
systemProperties java.util.Properties 对象 Java 系统属性(environment部分配置获取系统的路径,user.home或user.dll这么一个目录,user.home主要指用户的一个目录,用户目录和你当前创建的用户非常相关,用这个路径去比较有权限的写或读一些相关的子目录)
systemEnvironment java.util.Map 对象操作系统环境变量(java系统属性其实和java的当前进程启动是有关系的,区分用户环境变量和系统全局环境变量,主要指用户环境变量)
messageSource MessageSource 对象 国际化文案(web与mvc,验证表单失败了提示唯一与非法)
lifecycleProcessor LifecycleProcessor 对象 Lifecycle Bean 处理器(springbean实现start或stop去实现一些更细粒度的生命周期管理,不包括初始化和销毁)
applicationEventMulticaster ApplicationEventMulticaster对象 Spring 事件广播器(不支持单一广播即点对点广播)
注解驱动Spring 应用上下文内建可查找的依赖(部分)
Bean 名称 Bean 实例 使用场景org.springframework.context.annotation.internalConfigurationAnnotationProcessor
(xml中激活componentscan或标准的注解驱动applicationcontext或类上加component-scan注解激活)
ConfigurationClassPostProcessor 对象
(bean的后置处理,实际在beanFactory的生命周期里面处理,类的名称看不出bean的生命周期还是beanFactory的生命周期,它是处理spring配置类一个很核心的要素)生命周期回调
处理Spring 配置类(spring3中configurationclass封装内部包含@configuration同步引用)org.springframework.context.annotation.internalAutowiredAnnotationProcessorAutowiredAnnotationBeanPostProcessor 对象处理@Autowired 以及@Value 注解org.springframework.context.annotation.internalCommonAnnotationProcessorCommonAnnotationBeanPostProcessor 对象(条件激活)处理JSR-250 注解,如@PostConstruct 等org.springframework.context.event.internalEventListenerProcessor
(ApplicationListener接口的缺陷或限制,每一个even实现比如说contextRefresh的even实现的时候,即spring应用上下文启动时,每次的listener只能处理一个事件,由它的方法签名所约束,即onApplicationEven只能处理相关的一个事件,4.2引出新注解@EvenListener用在方法上或用在注解上作为元注解@See)
EventListenerMethodProcessor 对象处理标注@EventListener 的Spring 事件监听方法org.springframework.context.event.internalEventListenerFactory(EventListenerFactory可以实现多个evenListener,@EvenListener标注的方法底层最终都通过ApplicationListener实现,此时做了适配,把我的方法适配成我们相应的东西,几个输入源beanName,type,method)DefaultEventListenerFactory 对象@EventListener 事件监听方法适配为ApplicationListenerorg.springframework.context.annotation.internalPersistenceAnnotationProcessorPersistenceAnnotationBeanPostProcessor 对象(spring3的注解从jdk1.5支持,@Resource在jdk1.6,jpa需要new一个factory即EntityManagerFactory,对象实体管理器,每个对象就是一个实体,对象背后对应一张表,存储时候通过EntityManagerFactory的persistence方式,可以把对象的实体存到,通过外媒映射存到我的表里面去)(条件激活)处理JPA 注解场景
AnnotationConfigUtils在应用启动时注入