`

(转)Spring思维导图,让Spring不再难懂(ioc篇)

阅读更多

         前言:打算开始一个Spring模块的系列文章,查看网上已有的文章、博客,发现关于Spring的介绍说明浩如烟海,其中不乏深入浅出、说理透彻的文章。尤其发现,思维导图可以简明扼要的阐述相关概念及其之间的关系,所以引用、整理一篇介绍SpringIOC的的文章与大家分享。

本篇文章重点关注以下问题:

  • Spring知识细节
  • 控制反转
  • spring ioc容器
  • 核心组件协同工作
  • BeanFactory与ApplacationContext的区别
  • 3种注入方式
  • 原理解析

1. Spring知识细节

        写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。

2. 控制反转

3. IOC容器 

          在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。

         如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向Bean的编程,Bean在Spring中才是真正的主角。Spring为何如此流行?你会发现Spring解决了一个非常关键的问题,它可以让你对对象之间的关系转而用配置文件来管理,或者注解,也就是它的依赖注入机制。而这个注入关系在一个叫Ioc的容器中管理。Ioc容器就是被Bean包裹的对象。Spring正是通过把对象包装在Bean中从而达到管理这些对象及做一些列额外操作的目的。

        IOC如何工作:

         SpringIOC初始化:

         SpringIOC工作原理:

 

 4. 核心组件协同工作  

5. BeanFactory与ApplacationContext的区别

       IOC中最核心的接口是Beanfactory提供IOC的高级服务,而ApplicationContext是建立在BeanFactory基础之上提供抽象的面向应用的服务。  

 6. 三种注入方式

         在Spring框架中,依赖注入(DI)的设计模式是用来定义对象彼此间的依赖。使用xml配置bean的情况下,它主要有两种类型:

  • Setter方法注入
  • 构造器注入

        当然,有了注解之后,使用注解的方式更加方便快捷。即自动装配功能实现属性自动注入(@autowire)。写到这里,让我想起了最近在牛客网上看的一道选择题了:

  下面有关spring的依赖注入,说法错误的是?(C?)

  A、依赖注入通常有如下两种:设置注入和构造注入:
  B、构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入
  C、当设值注入与构造注入同时存在时,先执行构造注入,再执行设值注入
  D、设值注入是指IoC容器使用属性的setter方法来注入被依赖的实例。这种注入方式比较简单、直观

 

7. 原理解析

         后续我会介绍IOC的一般用法,以及对源码的追踪。

  • 大小: 162.6 KB
  • 大小: 269.8 KB
  • 大小: 13.9 KB
  • 大小: 192.8 KB
  • 大小: 2.8 KB
  • 大小: 13.7 KB
  • 大小: 74.2 KB
  • 大小: 202.1 KB
分享到:
评论

相关推荐

    Spring思维导图.xmind

    2019年最新最详细的Spring框架思维导图。 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了...

    Spring框架学习 思维导图 【原创】

    自学自用的Spring框架学习路径,从IOC、AOP、SSM整合到事务管理,内容丰富。注:整合SpringMVC需要配合上传的SpringMVC思维导图一起学习

    Spring思维导图

    这份"Spring思维导图"旨在帮助开发者全面理解和掌握Spring框架的主要概念和功能。 首先,Spring的核心特性包括: 1. **控制反转(IoC)**:IoC是指应用程序的控制权由传统的对象自行创建和管理转移到容器中,由...

    Spring基础的思维导图版+附带PDF版

    这个资源包含的是一个Spring基础的思维导图和PDF版,可以帮助学习者更直观、系统地理解Spring的核心概念。 首先,我们从"Spring AOP"开始。AOP(Aspect-Oriented Programming)是面向切面编程,它允许程序员定义...

    尚硅谷SpringCloud的源码及思维导图

    《尚硅谷SpringCloud源码深度解析与思维导图指引》 SpringCloud作为微服务架构的主流框架,其在IT行业中有着广泛的应用。尚硅谷提供的SpringCloud源码分析资源,为开发者深入理解这一框架提供了宝贵的资料。本文将...

    spring框架思维导图下载(纯手画)

    Spring框架是Java开发领域中的一个核心工具,由Rod..."Spring.png"和"Spring.xmind"可能是两种不同格式的思维导图文件,分别以图片和XMind原生格式呈现Spring框架的详细知识体系,对于学习和复习Spring框架非常有帮助。

    SSM框架的思维导图

    Spring.xmind思维导图可能涵盖了Spring的核心概念,如Bean容器、IoC(Inversion of Control)、AOP的应用场景、事务管理以及Spring与其他技术的整合,如JDBC、Hibernate等。 2. **SpringMVC**:作为Spring框架的一...

    spring ioc思维导图源文件

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它允许开发者将对象的创建和管理...而通过"spring ioc思维导图源文件"的学习,可以帮助我们系统地梳理和记忆这些知识点,从而提升开发效率。

    javaEE思维导图.

    6. **IOC(Inversion of Control)**:控制反转是Spring框架的核心特性,它将对象的创建和管理交由容器负责,使得组件之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。 7. **AOP(Aspect-Oriented ...

    IoC容器思维导图.emmx

    全网最全面Spring框架IoC知识体系的思维导图,讲解了Spring中的两大IoC容器和依赖注入的方式

    java知识+ssm框架+开源项目+小程序的思维导图

    java知识:1、java简介,2、java主要特性,3、java发展历史..............18、...ssm框架:(aop篇),(cache篇),ioc篇),(mvc篇) 开源项目:spring-shiro-training 博客项目Tale思维导图 小程序知识的思维导图

    Spring学习思维导图

    Spring学习思维导图 Spring是一个轻量级的JavaEE解决方案,它解决了EJB的问题,如运行环境苛刻、移植性差等。Spring的本质是一个工厂加配置文件,通过工厂设计模式来解决耦合问题。 一、工厂设计模式 工厂设计...

    Java Spring 源码解析 Xmind 思维导图

    总的来说,这份"Java Spring 源码解析 Xmind 思维导图"涵盖了Spring框架的核心组件和设计理念,帮助开发者从源码层面理解Spring的运行机制。通过这样的学习,可以提升开发者对Spring的理解,从而更好地利用Spring...

    ssm框架思维导图.rar

     Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。  SpringMVC  SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介...

    java思维导图及笔记

    12. **框架技术**:如Spring框架的IoC和AOP原理,MyBatis的使用,以及Struts2或Spring Boot等。 13. **数据库交互**:JDBC API的使用,SQL语言,事务处理,预编译语句等。 14. **设计模式**:单例、工厂、观察者、...

    Spring源码解析Xmind思维导图

    首先,让我们来探讨一下Spring的IoC容器。IoC,也称为依赖注入,是Spring的核心特性。它管理着应用对象的创建和依赖关系,使得代码更加松耦合。在Xmind思维导图中,可能你会看到关于BeanFactory和ApplicationContext...

    Spring家族的思维导图(高清PNG+SVG)

    这个压缩包包含Spring家族的思维导图,旨在帮助开发者理解和掌握Spring生态系统的各个组件和它们之间的关系。以下是根据提供的信息详细解释Spring家族的主要知识点: 1. **Spring框架**:Spring是整个家族的基础,...

Global site tag (gtag.js) - Google Analytics