您当前的位置: 首页 >  spring

qq_34412985

暂无认证

  • 1浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

spring的bean内建可查找的依赖

qq_34412985 发布时间:2020-04-11 15:49:06 ,浏览量:1

•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在应用启动时注入

                                 

 

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0412s