首页 > 其他分享 >面试题-Spring家族与SpringIOC

面试题-Spring家族与SpringIOC

时间:2024-07-01 19:30:57浏览次数:18  
标签:容器 面试题 SpringIOC Spring bean Bean 依赖 IOC

1.spring家族的介绍

在这里插入图片描述
Spring简单图:
在这里插入图片描述

2.IOC原理

在这里插入图片描述
IOC就是原先代码里需要开发者实现对象的创建和关系依赖,反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
依赖注入的方式:
Setter:实现特定属性的public setter方法来让IOC容器调用所依赖类型的对象
Interface:实现特定的接口,以供IOC容器注入所依赖的对象
Constructor:基于构造函数,实现特定的构造函数,在创建对象时,让IOC注入所依赖类型的对象。
Annotation:通过java的注解机制来让IOC容器注入所依赖类型的对象。例如:Spring框架里的autowired
在这里插入图片描述
**Ioc容器的优势:**容器管理着bean的生命周期,负责bean的依赖注入。
1.避免在各处使用new来创建类,并且可以做到统一维护。
2.在创建实例的时候不需要了解其中的细节。
在这里插入图片描述
在这里插入图片描述
大大提高了项目的可维护性,降低了开发难度。

3.SpringIOC的应用

读取Bean的配置信息,并在Spring容器中生成Bean的定义注册表;
根据注册表去实例化Bean;
将Bean实例放到Spring容器中。装配好Bean之间的依赖关系,为上层提供准备就绪的上层环境;Spring提供一个配置文件,描述Bean以及Bean之间的依赖关系,利用java语言的反射功能,实例化Bean,并建立Bean之间的依赖关系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常用容器:BeanFactory.
BeanFactory是Spring框架的基础设施,是IOC容器的基础接口。所有容器都从它这里继承实现而来。为了能够明确描述各个对象之间的依赖关系,提供了三种管理方式。在XML中进行显示配置;在java中进行显示配置,注解方式。

在这里插入图片描述
Spring容器在启动的时候,会将xml或者注解里的bean的定义解析成spring内部的beanDefinition。
在这里插入图片描述
registerBeanDefinition方法实现。存储在beanDefinitionMap.还将Bean的name存储到beanDefinitionNames里。以便后续Bean的实例化。
在这里插入图片描述
在这里插入图片描述

在SpringIOC中,默认的情况下,bean都是以单例模式下的。
ApplicationContext是高级容器。面向使用Spring框架的开发者,除了能够提供IOC容器的基本功能外,还能为用户提供附加服务。

在这里插入图片描述
在这里插入图片描述

标签:容器,面试题,SpringIOC,Spring,bean,Bean,依赖,IOC
From: https://blog.csdn.net/TOMORROW6COME/article/details/140108341

相关文章

  • spring boot(学习笔记第十一课)
    springboot(学习笔记第十一课)Session共享,JPA实现自动RESTful学习内容:Session共享JPA实现自动RESTful1.Session共享Session共享面临问题springboot默认将session保存在webserver的内存里面,会产生什么问题呢。如上图所示,有nginx作为服务器前置负载均衡器的时......
  • springboot+vue项目如何集成企业微信
    本文以springboot+vue技术开发的低代码平台为案例,介绍应用系统如何集成企业微信,包括同步企业微信组织用户、单点登录、消息发送等。在线体验:http://www.yunchengxc.com1、准备应用1.1、注册企业微信账号作为企业微信的企业管理员,首先登录企业微信官网,注册一个企业微信账号。......
  • SpringMVC中的注解配置
    目录13、注解配置springmvc13.1、创建初始化的类,代替web.xml13.2、使用流程声明一个类来继承AbstractAnnotationConfigDispatcherServletInitializer,并且实现他的抽象方法实现配置SpringConfig的java文件实现SpringMvcConfig的java文件13.3、实例代码1.继承AbstractAnnotationConf......
  • SpringBoot项目配置文件加密
    前言防止配置文件敏感信息泄露,去年公司出现过类似事件,也防止源码泄露,对项目中的配置文件进行加密引入方式pom文件引入以下依赖<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</v......
  • 消息队列面试题----基础篇
    ##1、为什么要用MQ?MQ有哪些使用场景?###什么是消息队列消息队列是一种异步的通信方式,用于在分布式系统中管理消息传递。消息队列采用了生产者-消费者模型,生产者将消息发送到队列中,而消费者则从队列中接收消息。###为什么要使用消息队列其实就是问问你消息队列都有哪些使......
  • springboot校企对接实习管理系统 毕业设计-附源码11959
    摘 要校企合作实习是一种重要的实践教学模式,但是在实际的推行过程中,存在许多管理问题。其中包括远程指导困难、学生管理困难、校企信息沟通不畅等问题一直困扰着校方负责管理实习的教师们。随着互联网系统开发技术的发展,应用web技术开发B/s模式的实习管理系统,根据用户需......
  • SpringMVC的数据获取问题
    在传统的javaweb中我们获取数据是通过HttpServletRequest中的getParameter或者getHeader等方法来获取相关的信息。由此我们引出了以下问题:在SpringMVC中应该如何获取请求提交的数据呢?在SpringMVC中又应该如何获取请求头信息呢?在SpringMVC中又应该如何获取客户端提交的Cookie......
  • 大数据面试题之Spark(6)
              Spark输出文件的个数,如何合并小文件?Spark的driver是怎么驱动作业流程的?SparkSQL的劣势?介绍下SparkStreaming和StructedStreamingSpark为什么比Hadoop速度快?DAG划分Spark源码实现?SparkStreaming的双流join的过程,怎么做的?Spark的Bl......
  • Spring的AOP概念详解
    AOP详解:1.介绍:面向切面编程,是一种将非业务代码与业务代码进行分离的一种思想,在实际开发中,往往有许多重复操作,例如事务提交,权限验证,保存口志等功能需要在业务代码重复调用,面向切面编程,就是将非业务代码进行抽取,然后在不修改原来代码的前提下,为我们的业务代码,添加额......
  • springboot使用itextpdf+jfreechart制作PDF文档
    1.springboot引入的依赖组件项目中需要引入itextpdf和jfreechart两个组件,版本根据项目所需进行引入,maven组件版本查询可根据如下地址进行查询:maven组件查询<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><vers......