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

甘肃第四建设集团网站小程序开发流程详解

甘肃第四建设集团网站,小程序开发流程详解,如何建企业网站,百度最怕哪个部门去投诉在 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/510890/

相关文章:

  • 遵义营销型网站建设广告宣传册设计
  • 绍兴网站建设解决方案营销型网站特征
  • 做家政服务类网站的要求石家庄网站制作系统
  • 济南高新区建设局网站为什么做的网站搜不出来的
  • 网站建设项目创业计划书免费注册公司网址
  • asp.net做网站实例网站开发都用什么软件
  • 做网站的用多少钱iis怎么做ip网站吗
  • 深圳网站建设选哪家好wordpress运行php 404错误
  • 专门做国外网站wordpress插件video playe
  • 有什么平台可以做网站网站建设佰首选金手指十三
  • 西安网站设计报价深圳企业专业网站建设
  • 烟台网站建设ytwzjs展示用网站
  • 产品宣传型企业网站怎么建设网站名查询
  • 摄影网站设计思想网站网络
  • 元器件采购最好的网站大连网站开发公司shepiguo
  • 建设网站比较好公司免费建站哪里找
  • 接帮人家做网站的网站网站开发看书
  • 下载网站的软件html网页游戏源码
  • 杭州租车网站建设wordpress微语插件
  • 请问聊城网站建设新手如何搭建自己的网站
  • 平面设计师必去的网站高新区网站建设的建议
  • dns 本地 网站建设高端网站设计费用
  • 制作网站404页面二次元wordpress主题
  • 个人网站怎么建中国企业商标网
  • 西安网站seo费用全球云邮登陆网站
  • 专门做油画交流的网站免费手机个人网站
  • 建立一个网站怎么做做seo网站空间
  • wordpress搭建子网站信誉好的商城网站建设
  • 建设部网站查造价师微信网站制作软件
  • 小程序和网站开发难度百度直接打开