当前位置: 首页 > news >正文

品牌网站建设9小蝌蚪9为wordpress创建一个ftp

品牌网站建设9小蝌蚪9,为wordpress创建一个ftp,西安建设网站平台,移动互联网营销在 Spring 框架中,Autowired 和 Resource 是两个常用的注解,用于实现依赖注入。尽管它们都能达到将依赖对象注入到目标 bean 的目的,但在细节上存在一些显著的差异。本文将深入探讨这两个注解的区别,并结合 Spring 源码进行分析&a…

在 Spring 框架中,@Autowired 和 @Resource 是两个常用的注解,用于实现依赖注入。尽管它们都能达到将依赖对象注入到目标 bean 的目的,但在细节上存在一些显著的差异。本文将深入探讨这两个注解的区别,并结合 Spring 源码进行分析,同时附上源码的执行流程图,帮助您更好地理解它们的工作原理。

一、@Autowired 注解

源码分析

在 Spring 中,@Autowired 的处理主要在 AutowiredAnnotationBeanPostProcessor 类中。当 Spring 容器初始化 bean 时,会遍历 bean 中的属性,如果发现带有 @Autowired 注解的属性,就会尝试从容器中获取对应的 bean 进行注入

代码入口:

public class AutowiredAnnotationBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter {public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) {/*** 根据当前bean 查找出来所有添加了@AutoWired 属性的* 根据属性实例化 一些注入器*/InjectionMetadata metadata = findAutowiringMetadata(beanName, bean.getClass(), pvs);try {metadata.inject(bean, beanName, pvs);}catch (BeanCreationException ex) {throw ex;}catch (Throwable ex) {throw new BeanCreationException(beanName, "Injection of autowired dependencies failed", ex);}return pvs;}
}

执行流程

  1. Spring 容器扫描带有 @Autowired 注解的属性。
  2. 根据属性的类型在容器中查找匹配的 bean。
  3. 如果找到多个相同类型的 bean,再根据属性名称进行匹配。
  4. 将匹配到的 bean 实例注入到目标属性。

二、@Resource 注解

@Resource 是 JSR-250 规范定义的注解,既可以按照名称进行装配,也可以按照类型进行装配。

源码分析

@Resource 的处理在 Spring 的 CommonAnnotationBeanPostProcessor 类中。

代码入口:

public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor implements MergedBeanDefinitionPostProcessor {@Overridepublic PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) {/*** 根据当前bean 查找出来所有添加了@Resource 属性的* 根据属性实例化 一些注入器*/InjectionMetadata metadata = findResourceMetadata(beanName, bean.getClass(), pvs);try {metadata.inject(bean, beanName, pvs);}catch (Throwable ex) {throw new BeanCreationException(beanName, "Injection of resource dependencies failed", ex);}return pvs;}
}

执行流程

  1. Spring 容器扫描带有 @Resource注解的属性。
  2. 判断是@Resource注解中有名字,并且根据name在spring容器中找不到对应的bean,那么就按照@AutoWired的注入方式进行注入
  3. 条件2 不成立的话那么就按照名字获取一个bean进行注入
http://www.yayakq.cn/news/213765/

相关文章:

  • 想建立什么网站吗好看的wordpress图片主题
  • 免费.网站最新域名行政机关网站建设
  • 如何免费注册网站平台千锋培训学费多少钱
  • 做写手一般上什么网站好网站收录后怎么做排名
  • asp在网站制作中的作用软件开发工具名词解释
  • 说明怎样做才能通过互联网访问你制作的网站微网站 无锡
  • 如果让你建设一个网站做网站如何赢利的
  • html论坛网站模板下载网站头部 标签
  • 改网站描述组建做网站的团队
  • 去菲律宾做it网站开发哈尔滨ui设计培训学校
  • wordpress 美容主题找seo外包公司需要注意什么
  • 大沥做网站打造对外宣传工作平台网站建设
  • 伪原创嵌入网站沈阳关键词优化电话
  • 网站 工信部备案 收回微信小程序制作教学
  • 网站建设 呢咕云视频创作用什么软件
  • 做网站阜阳html网站模板
  • 学院网站制度建设做网站预算表
  • 南宁网站关键词推广个人soho要怎么做企业网站
  • 最新的购物网站 开企业建设网站需要什么资料
  • 常州网站建设技术托管购物网站开发毕业设计开题报告
  • 在哪个网站做流动补胎的广告好网站建设必知
  • 网站主动服务方案wordpress 描文本优化
  • 上海网站开发公司外包做网站需要一些什么工具
  • 企业做的网站开发费如何入帐网站建设合同简单
  • pc网站运营部门子网站建设领导小组
  • 具有价值的做pc端网站河南省百城建设提质工程官网网站
  • 建站模板wordpress制作软件的公司叫什么
  • 正规企业网站开发使用方法现在互联网有什么平台可以做
  • 上海做家纺的公司网站wordpress调整菜单栏距离
  • 做百度推广一定要有网站吗wordpress主题商品展示