ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring相关概念

2022-08-21 16:33:49  阅读:227  来源: 互联网

标签:容器 依赖 对象 Spring dao 概念 相关 IOC


1. 初识Spring

官网:https://spring.io 。Spring能干什么:用以开发web、微服务以及分布式系统等

  • Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。

    image-20210729171850181

    说明:

    图中的图标都代表什么含义,可以进入 https://spring.io/projects 网站进行对比查看。

    这些技术并不是所有的都需要学习,额外需要重点关注:

    • Spring Framework:Spring中最早最核心的技术,也是所有其他技术的基础
    • SpringBoot:在Spring简化开发的基础上加速开发
    • SpringCloud:分布式之微服务架构的相关开发
    1629714811435

2. Spring系统架构

  • Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。

  • Spring Framework的5版本目前没有最新的架构图,而最新的是4版本,所以接下来主要研究的是4的架构图

    1629720945720

    (1)核心层

    • Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块

    (2)AOP层

    • AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强
    • Aspects:AOP是思想,Aspects是对AOP思想的具体实现

    (3)数据层

    • Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
    • Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
    • Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容

    (4)Web层

    • 这一层的内容将在SpringMVC框架具体学习

    (5)Test层

    • Spring主要整合了Junit来完成单元测试和集成测试

3. IOC、IOC容器、Bean、DI

3.1 IOC(Inversion of Control)控制反转

3.1.1 什么是控制反转呢?
  • 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

    • 业务层要用数据层的类对象,以前是自己new
    • 现在自己不new了,交给别人[外部]来创建对象
    • 别人[外部]就反转控制了数据层对象的创建权
    • 这种思想就是控制反转
    • 别人[外部]指定是什么呢?
3.1.2 Spring和IOC之间的关系是什么呢?
  • Spring技术对IOC思想进行了实现
  • Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的"外部"
  • IOC思想中的别人[外部]指的就是Spring的IOC容器
3.1.3 IOC容器的作用以及内部存放的是什么?
  • IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象
  • 被创建或被管理的对象在IOC容器中统称为Bean
  • IOC容器中放的就是一个个的Bean对象
3.1.4 当IOC容器中创建好service和dao对象后,程序能正确执行么?
  • 不行,因为service运行需要依赖dao对象
  • IOC容器中虽然有service和dao对象
  • 但是service对象和dao对象没有任何关系
  • 需要把dao对象交给service,也就是说要绑定service和dao对象之间的关系

3.2 DI(Dependency Injection)依赖注入

1629735078619
3.2.1 什么是依赖注入呢?
  • 在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
    • 业务层要用数据层的类对象,以前是自己new
    • 现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来
    • 这种思想就是依赖注入
3.2.2 IOC容器中哪些bean之间要建立依赖关系呢?
  • 这个需要程序员根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系

介绍完Spring的IOC和DI的概念后,我们会发现这两个概念的最终目标就是:充分解耦,具体实现靠:

  • 使用IOC容器管理bean(IOC)
  • 在IOC容器内将有依赖关系的bean进行关系绑定(DI)
  • 最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系.

4. 总结

内容来B站黑马程序员课程 。老师讲得很好,有兴趣的可以听听。

标签:容器,依赖,对象,Spring,dao,概念,相关,IOC
来源: https://www.cnblogs.com/tianaqiang/p/16610201.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有