Spring启动过程中创建bean过程中自动注入部分的代码分析

1.为什么需要自动注入?

需要自动注入的原因是基于控制反转的理念产生的,在IOC容器中,我把所有需要用的类变成Bean对象,当发现某个Bean需要用到我所拥有的其他Bean的时候,我就自动将Bean的实例赋予过去。

2.为什么现在使用自动注入的方式会被放弃?

具体原因是 容易调用无关的东西,不够灵活控制。

代码展示

缺陷说明

1.这种方式依托于要在该类中有对该属性的Set方法,它不关注你属性上的注解,有属性都会给你进行注入。(甚至更进一步可以说,它其实是会调用Set方法)

如果是BY_TYPE,它会根据传参的类型进行注入。

如果是BY_NAME,它会根据Set方法中setXXX,的xxx作为bean的名字去寻找,找不到才会根据BY_TYPE去找。

2.更进一步,我们可以发现,它其实是只要是Set方法便会去调用,不管你是不是用来进行注入的。(所以说容易调用无关的东西,不够灵活控制)

Original: https://www.cnblogs.com/chafry/p/16693994.html
Author: 忧愁的chafry
Title: Spring启动过程中创建bean过程中自动注入部分的代码分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616524/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java 操作 XML(14)–jackson-dataformat-xml 使用

    Jackson 除了可以处理 JSON,还可以用来处理 XML(jackson-dataformat-xml 模块),可以轻松完成 Java 对象和 XML 文档的互转;本文主要介…

    Java 2023年6月16日
    083
  • Java8新特性之Stream

    Java8新特性之StreamStream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream可以由数组…

    Java 2023年5月29日
    075
  • springcloud技术栈系列_5单元和接口自动化测试

    作为IT行业的从业者,质量对你的影响贯穿整个职业生涯。 我想给各个不同岗位的研发相关同学提出一些问题。 假如你是Java工程师: 如何主动的提高代码质量?设计上,单测工具使用上有哪…

    Java 2023年6月8日
    071
  • Java 泛型程序设计

    1. 泛型类 public class Pair<t> { private T first; private T second; public void setSeco…

    Java 2023年6月16日
    088
  • 一个人成为废物得九大特质

    成为废物的九大特质 决定事情犹豫不决,优柔寡断 很强得拖延症 做什么事都三分钟热度 害怕被拒绝 自我设限(百度一下,你就知道) 经常逃避现实,不敢面对现实 总是能找到各种借口 总是…

    Java 2023年6月7日
    088
  • 微服务SpringCloud之服务调用与负载均衡

    上一篇我们学习了服务的注册与发现,本篇博客是在上一篇的基础上学习服务的调用。上一博客主要创建了Eureka的服务端和一个Client,该Client包含了一个Controller用…

    Java 2023年5月30日
    087
  • 最近学习了JDK SPI

    JDK SPI是什么 最近工作中听几个同事说了好几次SPI这个名词,虽然和我没关系,但是心里默默想还是学习一下,不然下次和我说到SPI,连是什么都不知道那就尴尬了。 所以SPI是什…

    Java 2023年5月30日
    086
  • MySQL事务隔离级别

    MySQL事务隔离级别 事务 事务是由单独的一个或者多个SQL语句组成,是一个最小的不可再分割的单元,这一组操作里面的所有的执行,要么全部成功、要么全部不成功。如果有一个执行不成功…

    Java 2023年6月15日
    076
  • 高可用架构(上)

    1. 背景 在学习完各种高性能发实现方案后,就需要对三大复杂度一直的高可用进行开刀了,在高可用方面主要有哪些东西是我们需要考虑的呢?接下来将从三个方面逐一分析。 2. 理论 在设计…

    Java 2023年6月15日
    067
  • 来阿里一年后我迎来了第一次工作变动….

    你怎么不更新啦?怎么最近动态也变少啦?都去干吗了?工作很忙么? 算起来我也阶段性停更一年半了,这一年半不仅是在不断尝试自媒体不同的内容和方向,工作上的巨大转变也推着我去学习尝试了很…

    Java 2023年6月9日
    082
  • 第三方百度网盘客户端 PanDownload、速盘、panlight

    PanDownload PanDownload是一款能够快速下载百度网盘内资源的强大工具。PanDownload能够无限速高速下载,满速下载百度云盘里的各种资源。而且PanDown…

    Java 2023年5月30日
    0161
  • JDK 自带的观察者模式源码分析以及和自定义实现的取舍

    setChanged 这个开关的作用——可以借鉴思想 1、使得主题具备了很大的伸缩性 假如没有 setChanged,那么一旦主题的状态变了,就不得不立即通知订阅者,这不是很合理,…

    Java 2023年5月30日
    078
  • JAVA设计模式-单例模式

    JAVA设计模式-单例模式 单例模式 类只能有一个实例,在内存中会创建并且只创建一次对象。所有其他类或者其他需要调用的地方都是用这一个对象,可以防止频繁创建对象,内存占用高。特点:…

    Java 2023年6月15日
    088
  • Android照相机应用

    Android在设计架构的时候,采用了mashup(混搭)的设计理念,也就是说一切都是组建,自己写的是组件,别人提供的也是组件,使用的时候只要符合相关协议就可以把他们当作自己的组件…

    Java 2023年6月7日
    081
  • 【主流技术】Mybatis Plus的理解与应用

    前言 mybatis plus是一个mybatis的增强工具,在其基础上只做增强不做改变。作为开发中常见的第三方组件,学习并应用在项目中可以节省开发时间,提高开发效率。 官方文档地…

    Java 2023年6月6日
    0100
  • 大三上 期中考试

    湛江师范学院 2014 - 2015 学年度第 1 学期 期中试卷 科目:LINUX 平台及应用 C 编程 shell编程 100 蔡广基 评卷人 蔡广基 一、操作题。添加一个 1…

    Java 2023年6月13日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球