首页 > 其他分享 >Spring学习1-IOC、IOC容器、Bean、DI

Spring学习1-IOC、IOC容器、Bean、DI

时间:2022-08-21 16:33:25浏览次数:58  
标签:容器 service DI 对象 Spring dao IOC

1. IOC(Inversion of Control)控制反转

 

 

 

(1)什么是控制反转呢?

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

(2)Spring和IOC之间的关系是什么呢?

  Spring技术对IOC思想进行了实现 Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的"外部" IOC思想中的别人[外部]指的就是Spring的IOC容器  

(3)IOC容器的作用以及内部存放的是什么?

  IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象 被创建或被管理的对象在IOC容器中统称为Bean IOC容器中放的就是一个个的Bean对象  

(4)当IOC容器中创建好service和dao对象后,程序能正确执行么?

  不行,因为service运行需要依赖dao对象 IOC容器中虽然有service和dao对象,但是service对象和dao对象没有任何关系,需要把dao对象交给service,也就是说要绑定service和dao对象之间的关系。 像这种在容器中建立对象与对象之间的绑定关系就要用到DI:  

2. DI(Dependency Injection)依赖注入

 

 

(1)什么是依赖注入呢?

  在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。   业务层要用数据层的类对象,以前是自己new的,现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来,这种思想就是依赖注入。  

(2)IOC容器中哪些bean之间要建立依赖关系呢?

  这个需要程序员根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系。   介绍完Spring的IOC和DI的概念后,我们会发现这两个概念的最终目标就是:充分解耦,具体实现靠: 使用IOC容器管理bean(IOC) 在IOC容器内将有依赖关系的bean进行关系绑定(DI) 最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系。  

标签:容器,service,DI,对象,Spring,dao,IOC
From: https://www.cnblogs.com/puzi0315/p/16610219.html

相关文章

  • redis-持久化
    https://blog.csdn.net/JavaTeachers/article/details/108998121https://www.pdai.tech/md/db/nosql-redis/db-redis-x-rdb-aof.html......
  • Spring容器创建Bean源码分析
    一、Spring提供了多种上下文来实现容器功能比如:AnnotationConfigApplicationContext、ClassPathXmlApplicationContext这里使用AnnotationConfigApplicationCont......
  • PHP正则的Unknown Modifier错误解决方法
    https://www.jb51.net/article/22304.htm 如下正则:$a='2<span><nobr>tóng<spanclass="h">dòng</span></nobr><br>垌</span>3';echopreg_replace('/<spanclas......
  • Redis概念
    Redis概念:redis是一款高性能的NOSQL系列的非关系型数据库什么是NOSQLNOSQL(NoSQL=NotOnlySQL),意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库......
  • 1.spring boot面试题
    SpringBoot基础1.什么是springboot?通过自动配置方式简化Spring应用的开发,弱化配置,遵循约定大于配置的原则,使开发者专注于业务开发而无需过多考虑配置相关操作,通过启动......
  • Jedis快速入门和操作string
    Jedis快速入门Jedis:一款java操作redis数据库的工具使用步骤:1、下载jedis的jar包2、使用/***jedis的测试类*/publicclassJedisTest{/**......
  • Jedis快速入门和Jedis操作string
    Jedis快速入门Jedis:是一款java操作redis数据库的工具使用步骤:1.下载Jedis的jar包2.使用这两个jar包导入项目中 编写一个测试类JedisTest:/***Jedis的......
  • Redis 哨兵机制
    概述由一个或多个Sentinel(哨兵)实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主......
  • redis持久化RDB和redis持久化AOF
    redis是一个内存数据库,当redis服务器重启,获电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中redis持久化机制:RDB:默认方式,不需要进行配......
  • redis持久化RDB和AOF
    持久化1、redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。2、redis持久化机制......