首页 > 其他分享 >spring框架_@AutoWiredAnnotationBeanPostProcessor执行分析

spring框架_@AutoWiredAnnotationBeanPostProcessor执行分析

时间:2023-05-13 15:03:20浏览次数:35  
标签:框架 Autowired 按类型 spring AutoWiredAnnotationBeanPostProcessor 方法 属性

AutoWiredAnnotationBeanPostProcessor 执行依赖注入的时候(解析@Autowired)调用了postProcessProperties 方法

image

这个方法首先要找到哪些属性,方法被标注了@Autowired注解,把这些数据添加到 InjectMetadata中,然后调用metadata.inject方法按类型进行依赖注入,注入时按类型进行查找

按类型查找的流程

image

  1. 首先通过反射拿到被注解标注的字段或者方法
  2. 再将这个字段,或者方法中的参数添加到DependencyDescriptor中
  3. 通过beanFactory的doResolveDependency方法找到和这个属性具有相同类型的bean
  4. 最后通过反射的set方法把属性赋值

标签:框架,Autowired,按类型,spring,AutoWiredAnnotationBeanPostProcessor,方法,属性
From: https://www.cnblogs.com/zwy-yjy/p/17397397.html

相关文章

  • 创建SpringCloud项目
    SpringCloud简介SpringCloud是目前国内使用最广泛的微服务框架。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。SpringCloud常用组件1.服务注册发现:Eureka,Nacos,Consul2.服务远程调用:OpenFeign,Dubbo3.服务链路......
  • 用go设计开发一个自己的轻量级登录库/框架吧(业务篇)
    用go设计开发一个自己的轻量级登录库/框架吧(业务篇)本篇会讲讲框架的登录业务的实现。实现三种登录模式:同一用户只能登录一次同一用户多次登录多token同一用户多次登录共享一个token源码:weloe/token-go:alightloginlibrary(github.com)存储结构首先从我们要考虑是......
  • SpringBoot整合Mybatis
    SpringBoot整合MyBatisSpringBoot整合MyBatisSpringBoot是一个快速开发应用程序的框架,而MyBatis是一个提供ORM支持的优秀框架。在本文中,我们将学习如何将SpringBoot与MyBatis整合,以便我们能够更加轻松地开发Web应用程序。步骤创建新的SpringBoot项目。在pom.xml文件中添加My......
  • Spring---AOP的实现
    AOP使用AOP进行代理开发的话,需要导入这样一个依赖:<!--https://mvnrepository.com/artifact/org.aspectj/aspectjweaver--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6<......
  • java基于springboot+vue的农机电招平台、农机租赁管理系统,附源码+数据库+文档+PPT,适合
    1、项目介绍该系统包括前台操作和后台管理两个部分,一方面,为用户提供首页,农机,系统公告,个人中心,后台管理等功能;另一方面,为管理员提供首页,个人中心,农机机主管理,使用者管理,农机类型管理,农机管理,农机预约管理,系统管理等功能。项目获取,看这里2、技术框架编程语言:java系统架构:B/S......
  • H5U的一个比较完整的程序框架. PLC还是性价比挺高,特别是对于伺服的总线。
    H5U的一个比较完整的程序框架.PLC还是性价比挺高,特别是对于伺服的总线。主打的伺服控制是ETHERCAT总线程序写的条理分明,清晰易懂,注释清楚,对于初次使用汇川的总线控制有很好的参考价值,。气缸的控制宝库伸出、缩回、报警轴的控制是分为通讯、READY、使能、JOG、绝对定位、压合、......
  • SpringBoot 依赖注入方式
    前置知识SpringDI(DependencyInjection)依赖注入:组件之间依赖关系由容器在运行期间决定,即由容器动态的将某个依赖关系注入到组件中谁依赖谁:应用程序依赖IOC容器为什么需要依赖:应用程序需要IOC容器提供对象需要的外部资源谁注入谁:IOC容器注入应用程序某个对象,应用程序依赖的......
  • SpringCloud之Zookeeper作为配置中心
    Zookeeper提供了一个分层的命名空间,让客户端可以存储任意数据,例如配置数据。SpringCloudZookeeperConfig是ConfigServer和Client的替代方案。在特殊的“bootstrap”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config命名空间中。将根据应用程序的名称和活动配置文件......
  • Spring实现javaConfig配置
    1、新建一个config的java文件设置注解为Configuration:2、然后在test的执行文件里面进行注解形式的运行ApplicaitonContextcontext=newAnnocationConfigAppication(userConfig.class);3、Configuration这个注解代表了之前的xml的配置文件的意思,也算是将配置文件化成了con......
  • Spring实现注解开发基本步骤
    1、确定相关依赖是否导入要是想使用注解开发,必须要确定aop的包正确导入!!!2、通过xml配置文件,指定要扫描的文件的路径3、使用Component定义实体类然后取到组件注解的实体类的首字母的小写形式,实现调用:4、使用注解实现属性注入5、Dao层用这个注解6、Service层7、Control......