首页 > 其他分享 >Spring相关概念

Spring相关概念

时间:2022-08-21 16:38:01浏览次数:76  
标签:容器 依赖 对象 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
From: https://www.cnblogs.com/tianaqiang/p/16610201.html

相关文章

  • Spring学习1-IOC、IOC容器、Bean、DI
    1.IOC(InversionofControl)控制反转   (1)什么是控制反转呢? 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此......
  • Spring容器创建Bean源码分析
    一、Spring提供了多种上下文来实现容器功能比如:AnnotationConfigApplicationContext、ClassPathXmlApplicationContext这里使用AnnotationConfigApplicationCont......
  • Redis概念
    Redis概念:redis是一款高性能的NOSQL系列的非关系型数据库什么是NOSQLNOSQL(NoSQL=NotOnlySQL),意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库......
  • 1.spring boot面试题
    SpringBoot基础1.什么是springboot?通过自动配置方式简化Spring应用的开发,弱化配置,遵循约定大于配置的原则,使开发者专注于业务开发而无需过多考虑配置相关操作,通过启动......
  • 素数相关
    欧拉筛法用数组v[i]来记录这个数的最小质因子依次考虑2-n这些数如果v[i]=i,表示这个数为素数,把这个数存起来否则,扫描所有小于等于v[i]的素数,令v[ip]=p,表示ip这个......
  • spring 整合 rabbitmq
    一、基本配置1、pom添加以下jar<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.7.5</ve......
  • SpringBean的实例化
    在Spring框架中,想使用Spring容器中的Bean,需要先实例化BeanSpringBean的实例化有3种方式构造方法实例化(最常用)在Java配置类中,写一个构造方法,在这个构造方法中new一个......
  • 【博学谷学习记录】超强总结,用心分享。 Spring核心容器
    SpringFramework系统架构一.核心容器1.概念:代码书写现状:耦合度偏高解决方法:使用对象时,在程序中不要主动使用n......
  • Spring 05: 用DI(依赖注入)优化Spring接管下的三层项目架构
    背景用注解改造前面Spring博客集里(指Spring02)Spring接管下的三层项目架构对前面Spring博客集里(指Spring04)@Controller+@Service+@Repository3个注解的用法......
  • spring5 事务
    1.事务介绍1.1事务添加到javaEE的service1.2声明式事务和编程试1.3声明式xml事务开发注解方式1.4在Spring中进行事务开发底层用的aop原理1.5Spring事......